CodeIgniter Projesi Oluşturma ve Çalıştırma
CodeIgniter Nedir?
CodeIgniter, hızlı ve verimli web uygulamaları geliştirmek için uygun olan hafif bir PHP frameworküdür. MVC (Model-View-Controller) tasarım modelini takip eder ve geliştiricilerin yüksek kaliteli web uygulamaları hızla oluşturabilmeleri için zengin özellikler ve araçlar sunar. CodeIgniter, basitliği, yüksek performansı ve kolay öğrenilmesiyle bilinir ve birçok geliştiricinin tercih ettiği bir frameworktür.
CodeIgniter'ın Başlıca Özellikleri ve Avantajları
- Hafif: CodeIgniter'ın çekirdek sistemi oldukça küçük olup sadece gerekli bileşenleri içerir, bu nedenle yüklenme hızı çok yüksektir.
- Yüksek Performans: CodeIgniter yüksek performans ve hız ile ünlüdür, yüksek eşzamanlı istekleri işleyebilir.
- Kolay Öğrenilebilir: Basit ve kullanımı kolay API ve zengin dokümantasyon sunar, geliştiriciler hızlı bir şekilde işe koyulabilir.
- Esneklik: Geliştiricilerin üçüncü taraf kütüphane ve eklentileri serbestçe seçmesine ve kullanmasına izin verir, özelliklerin genişletilmesi ve özelleştirilmesine olanak tanır.
- Güçlü Topluluk Desteği: Aktif geliştirici topluluğu ve zengin üçüncü taraf uzantılarına sahiptir.
CodeIgniter, geliştiricilerin yüksek performanslı ve kaliteli web uygulamaları hızlıca oluşturmasına yardımcı olabilir ve her ölçekten projeler için uygundur.
ServBay İle CodeIgniter Projesi Oluşturma ve Çalıştırma
Bu makalede, PHP ortamı sağlamak için ServBay kullanarak bir CodeIgniter projesi oluşturacak ve çalıştıracağız. Web sunucusunu ayarlamak için ServBay'in 'Host' özelliğini kullanacağız ve projenin erişimini basit bir yapılandırma ile gerçekleştireceğiz.
Dikkat: Daha önce NGINX veya Apache kullanıcısıysanız
ServBay varsayılan olarak web sunucusu olarak Caddy kullanır. NGINX ve Apache'den ServBay'e geçiş yapan kullanıcılar için dikkat edilmesi gereken bazı önemli değişiklikler vardır:
Caddy Yapılandırması
ServBay Caddy'yi içermekte olup varsayılan yapılandırma optimize edilmiş ve kullanıma hazırdır. Geliştiriciler, ServBay'in 'Host' özelliğini kullanarak siteleri yönetir, Caddy yapılandırma dosyalarını manuel olarak değiştirmeye gerek yoktur.
Rewrite Kuralları ve .htaccess
NGINX ve Apache'de geliştiriciler genellikle URL yeniden yazma ve diğer yapılandırmalar için kendi Rewrite kurallarını ve .htaccess dosyalarını yazarlar. Ancak, ServBay varsayılan olarak Caddy kurallarını zaten yapılandırmıştır, bu nedenle özel bir gereksinim olmadıkça bu kuralları manuel olarak yazmanıza gerek yoktur.
Daha fazla bilgi
Daha fazla bilgi için Rewrite ve htaccess, Apache Websitesini ServBay’e Nasıl Taşırım, NGINX Websitesini ServBay’e Nasıl Taşırım belgelerine göz atın.
CodeIgniter Projesi Oluşturma
TIP
ServBay, geliştiricilerin sitelerini yönetimi kolaylaştırmak için $/Applications/ServBay/www
dizinine koymalarını önerir.
Composer Kurulumu
ServBay, önceden yüklenmiş Composer ile birlikte gelir, ayrıca yükleme gerekmez.
CodeIgniter Projesi Oluşturma
Composer kullanarak yeni bir CodeIgniter projesi oluşturun:
bashcd /Applications/ServBay/www mkdir servbay-codeigniter-app cd servbay-codeigniter-app composer create-project codeigniter4/appstarter .
1
2
3
4Proje Dizini İçine Girme
Yeni oluşturulan CodeIgniter proje dizinine girin:
bashcd /Applications/ServBay/www/servbay-codeigniter-app
1
Başlangıç Yapılandırması
Veritabanı Bağlantısını Yapılandırma
app/Config/Database.php
dosyasında veritabanı bağlantı bilgilerini yapılandırın:phppublic $default = [ 'DSN' => '', 'hostname' => '127.0.0.1', 'username' => 'root', 'password' => 'password', 'database' => 'servbay_codeigniter_app', 'DBDriver' => 'MySQLi', 'DBPrefix' => '', 'pConnect' => false, 'DBDebug' => (ENVIRONMENT !== 'production'), 'charset' => 'utf8mb4', 'DBCollat' => 'utf8mb4_general_ci', 'swapPre' => '', 'encrypt' => false, 'compress' => false, 'strictOn' => false, 'failover' => [], 'port' => 3306, ];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Web Sunucusunu Yapılandırma
ServBay'in 'Host' özelliğini kullanarak CodeIgniter projesine web sunucusu üzerinden erişin. ServBay'de yeni bir host ekleyin:
- Adı:
İlk CodeIgniter Geliştirme Sitesi
- Alan Adı:
servbay-codeigniter-test.local
- Web Sitesi Türü:
PHP
- PHP Versiyonu:
8.3
seçin - Web Sitesi Kök Dizini:
/Applications/ServBay/www/servbay-codeigniter-app/public
Detaylı ayar adımları için İlk Websitesini Ekleme rehberine göz atın.
Örnek Kodu Ekleyin
app/Controllers/Home.php
dosyasına aşağıdaki kodu ekleyin:
namespace App\Controllers;
use CodeIgniter\Controller;
class Home extends Controller
{
public function index()
{
return 'Hello ServBay!';
}
public function memcached()
{
$cache = \Config\Services::cache();
$cache->save('key', 'Hello Memcached!', 60);
$value = $cache->get('key');
return $value;
}
public function redis()
{
$redis = \Config\Services::cache();
$redis->set('key', 'Hello Redis!');
$value = $redis->get('key');
return $value;
}
public function mysqlAdd()
{
$db = \Config\Database::connect();
$db->table('users')->insert([
'name' => 'ServBay',
'email' => '[email protected]',
]);
return 'User added';
}
public function mysql()
{
$db = \Config\Database::connect();
$users = $db->table('users')->get()->getResult();
return json_encode($users);
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Web Sitesine Erişim
Tarayıcıyı açın ve aşağıdaki URL'yi ziyaret edin:
https://servbay-codeigniter-test.local
: SayfadaHello ServBay!
çıktısını göreceksiniz.
NoSQL Veritabanı Örneği
Memcached Örneği
Memcached Eklentisini Kurma
ServBay'de, Memcached eklentisi önceden yüklenmiştir, ekstra kurulum gerekmez.
Memcached Yapılandırması
app/Config/Cache.php
dosyasında Memcached bağlantı bilgilerini yapılandırın:phppublic $memcached = [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 1, ];
1
2
3
4
5Memcached Kullanımı
Denetleyicide cache kullanımı:
phppublic function memcached() { $cache = \Config\Services::cache(); $cache->save('key', 'Hello Memcached!', 60); $value = $cache->get('key'); return $value; }
1
2
3
4
5
6
7app/Config/Routes.php
dosyasına rotayı ekleyin:php$routes->get('/memcached', 'Home::memcached');
1Tarayıcıyı açın ve https://servbay-codeigniter-test.local/memcached adresine gidin
Redis Örneği
Redis Eklentisini Kurma
ServBay'de, Redis eklentisi önceden yüklenmiştir, ekstra kurulum gerekmez.
Redis Yapılandırması
app/Config/Cache.php
dosyasında Redis bağlantı bilgilerini yapılandırın:phppublic string $handler = 'redis'; public $default = [ 'host' => '127.0.0.1', 'password' => null, 'port' => 6379, 'timeout' => 0, 'database' => 0, ];
1
2
3
4
5
6
7
8
9Redis Kullanımı
Denetleyicide cache kullanımı:
phppublic function redis() { $redis = \Config\Services::cache(); $redis->save('key', 'Hello Redis!'); $value = $redis->get('key'); return $value; }
1
2
3
4
5
6
7app/Config/Routes.php
dosyasına rotayı ekleyin:php$routes->get('/redis', 'Home::redis');
1Tarayıcıyı açın ve https://servbay-codeigniter-test.local/redis adresine gidin
İlişkisel Veritabanı Örneği
Veritabanı Yapısını ve Geçiş Dosyasını Oluşturma
Geçiş Dosyası Oluşturma
CodeIgniter'ın CLI aracını kullanarak geçiş dosyası oluşturun:
bashphp spark make:migration create_users_table
1Geçiş Dosyasını Düzenleme
app/Database/Migrations
dizininde yeni oluşturulan geçiş dosyasını bulun ve veritabanı tablosu yapısını tanımlamak için düzenleyin:phpuse CodeIgniter\Database\RawSql; public function up() { $this->forge->addField([ 'id' => [ 'type' => 'INT', 'constraint' => 5, 'unsigned' => true, 'auto_increment' => true, ], 'name' => [ 'type' => 'VARCHAR', 'constraint' => '100', ], 'email' => [ 'type' => 'VARCHAR', 'constraint' => '100', 'unique' => true, ], 'created_at' => [ 'type' => 'TIMESTAMP', 'default' => new RawSql('CURRENT_TIMESTAMP'), ], 'updated_at' => [ 'type' => 'TIMESTAMP', 'default' => new RawSql('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'), ], ]); $this->forge->addKey('id', true); $this->forge->createTable('users'); }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32Geçişi Çalıştırma
CodeIgniter'ın geçiş komutunu kullanarak geçişi çalıştırın ve veritabanı tablosunu oluşturun:
bashphp spark migrate
1
MySQL Örneği
MySQL Yapılandırması
app/Config/Database.php
dosyasında MySQL bağlantı bilgilerini yapılandırın:phppublic $default = [ 'DSN' => '', 'hostname' => '127.0.0.1', 'username' => 'root', 'password' => 'password', 'database' => 'servbay_codeigniter_app', 'DBDriver' => 'MySQLi', 'DBPrefix' => '', 'pConnect' => false, 'DBDebug' => (ENVIRONMENT !== 'production'), 'charset' => 'utf8', 'DBCollat' => 'utf8_general_ci', 'swapPre' => '', 'encrypt' => false, 'compress' => false, 'strictOn' => false, 'failover' => [], 'port' => 3306, ];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19Rota Ekleme
app/Config/Routes.php
dosyasına aşağıdaki rotaları ekleyin:php$routes->get('/mysql-add', 'Home::mysqlAdd'); $routes->get('/mysql', 'Home::mysql');
1
2Kullanıcı Verilerini Yazma
Denetleyicide kullanıcı verilerini yazma:
phppublic function mysqlAdd() { $db = \Config\Database::connect(); $db->table('users')->insert([ 'name' => 'ServBay', 'email' => '[email protected]', ]); return 'User added'; }
1
2
3
4
5
6
7
8
9MySQL Kullanımı
Denetleyicide veritabanını çağırma:
phppublic function mysql() { $db = \Config\Database::connect(); $users = $db->table('users')->get()->getResult(); return json_encode($users); }
1
2
3
4
5
6Tarayıcıyı açın ve
https://servbay-codeigniter-test.local/mysql-add
vehttps://servbay-codeigniter-test.local/mysql
adreslerini ziyaret edin.
PostgreSQL Örneği
PostgreSQL Yapılandırması
app/Config/Database.php
dosyasında PostgreSQL bağlantı bilgilerini yapılandırın:phppublic $default = [ 'DSN' => '', 'hostname' => '127.0.0.1', 'username' => 'root', 'password' => 'password', 'database' => 'servbay_codeigniter_app', 'DBDriver' => 'Postgre', 'DBPrefix' => '', 'pConnect' => false, 'DBDebug' => (ENVIRONMENT !== 'production'), 'charset' => 'utf8', 'DBCollat' => 'utf8_general_ci', 'swapPre' => '', 'encrypt' => false, 'compress' => false, 'strictOn' => false, 'failover' => [], 'port' => 5432, ];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19Veritabanı Geçiş Dosyası Oluşturma
Veritabanı geçiş dosyası oluşturmak için aşağıdaki komutu çalıştırın:
bashphp spark make:migration create_users_table
1Veritabanı Geçiş Dosyasını Düzenleme
phpuse CodeIgniter\Database\RawSql; public function up() { $this->forge->addField([ 'id' => [ 'type' => 'INT', 'constraint' => 5, 'unsigned' => true, 'auto_increment' => true, ], 'name' => [ 'type' => 'VARCHAR', 'constraint' => '100', ], 'email' => [ 'type' => 'VARCHAR', 'constraint' => '100', 'unique' => true, ], 'created_at' => [ 'type' => 'TIMESTAMP', 'default' => new RawSql('NOW()'), ], 'updated_at' => [ 'type' => 'TIMESTAMP', 'default' => new RawSql('NOW()'), ], ]); $this->forge->addKey('id', true); $this->forge->createTable('users'); }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32Veritabanı Geçişini Çalıştırma
Aşağıdaki komut ile veritabanı geçişini çalıştırarak tablo yapısını oluşturun:
bashphp spark migrate
1Rota Ekleme
app/Config/Routes.php
dosyasına aşağıdaki rotaları ekleyin:php$routes->get('/pgsql-add', 'Home::pgsqlAdd'); $routes->get('/pgsql', 'Home::pgsql');
1
2Kullanıcı Verilerini Yazma
Denetleyicide kullanıcı verilerini yazma:
phppublic function pgsqlAdd() { $db = \Config\Database::connect(); $db->table('users')->insert([ 'name' => 'ServBay', 'email' => '[email protected]', ]); return 'User added'; }
1
2
3
4
5
6
7
8
9PostgreSQL Kullanımı
Denetleyicide veritabanını çağırma:
phppublic function pgsql() { $db = \Config\Database::connect(); $users = $db->table('users')->get()->getResult(); return json_encode($users); }
1
2
3
4
5
6Tarayıcıyı açın ve
https://servbay-codeigniter-test.local/pgsql-add
vehttps://servbay-codeigniter-test.local/pgsql
adreslerine gidin.
Yukarıdaki adımları takip ederek, CodeIgniter projesi oluşturmayı ve çalıştırmayı başardınız. ServBay'in sunduğu özellikleri kullanarak projenizi yönettiniz ve çeşitli veritabanlarına bağlandınız. Umarım bu makale, CodeIgniter'ı hızlı bir şekilde öğrenmenize ve projelerinizde uygulamanıza yardımcı olur.