CodeIgniter Projesi Oluşturma ve Çalıştırma
CodeIgniter Nedir?
CodeIgniter, hızlı ve verimli web uygulamaları geliştirmek için uygun 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şturmasına olanak tanıyan zengin özellikler ve araçlar sunar. Basitliği, yüksek performansı ve öğrenme kolaylığı ile tanınan CodeIgniter, geliştiriciler arasında popüler bir seçimdir.
CodeIgniter'ın Ana Özellikleri ve Avantajları
- Hafif: CodeIgniter’ın çekirdek sistemi çok küçüktür, yalnızca gerekli bileşenleri içerir ve bu da onu çok hızlı yüklemeye olanak tanır.
- Yüksek Performans: CodeIgniter, verimli performansı ve hızıyla tanınır, yüksek eşzamanlılığı yönetebilir.
- Öğrenmesi Kolay: Basit ve kullanımı kolay bir API sağlar ve kapsamlı belgelendirme ile geliştiricilerin hızla başlamasına olanak tanır.
- Esneklik: Geliştiricilerin üçüncü parti kütüphaneleri ve eklentileri serbestçe seçip kullanmalarına izin vererek genişletme ve özelleştirmeyi kolaylaştırır.
- Güçlü Topluluk Desteği: Aktif bir geliştirici topluluğu ve birçok üçüncü taraf genişletmesi vardır.
CodeIgniter, geliştiricilerin hızlıca yüksek performanslı, yüksek kaliteli web uygulamaları oluşturmasına yardımcı olabilir ve her ölçekten proje için uygundur.
ServBay Kullanarak CodeIgniter Projesi Oluşturma ve Çalıştırma
Bu makalede, ServBay’in PHP ortamını kullanarak bir CodeIgniter projesi oluşturup çalıştıracağız. Web sunucusunu kurmak için ServBay’in 'Host' işlevini kullanacağız ve basit yapılandırma ile proje erişimini sağlayacağız.
Not: Eğer bir NGINX veya Apache kullanıcısıysanız
ServBay, varsayılan web sunucusu olarak Caddy kullanır. NGINX ve Apache'den ServBay'e geçiş yapan kullanıcıların farkında olması gereken bazı önemli değişiklikler vardır:
Caddy Yapılandırması
Caddy zaten ServBay ile entegre edilmiştir ve varsayılan yapılandırma optimize edilip hata ayıklaması yapılmıştır. Geliştiriciler sadece ServBay’in ‘Host’ işlevi ile siteyi yönetmek zorundadır, Caddy yapılandırma dosyalarını manuel olarak değiştirmeye gerek yoktur.
Yönlendirme Kuralları ve .htaccess
NGINX ve Apache'de, geliştiriciler genellikle URL yönlendirme ve diğer yapılandırmalar için kendi yönlendirme kurallarını ve .htaccess dosyalarını yazmak zorundadır. Ancak, ServBay ile Caddy için kurallar önceden yapılandırılmıştır, bu nedenle özel bir gereksinim olmadıkça geliştiriciler bu kuralları kendileri yazmak zorunda değillerdir.
Daha Fazla Bilgi Edinin
Daha fazla bilgi için lütfen Yönlendirme ve htaccess, Apache Websitesini ServBay'e Taşıma, NGINX Websitesini ServBay'e Taşıma kılavuzlarına başvurun.
CodeIgniter Projesi Oluşturma
TIP
ServBay, geliştiricilerin web sitelerini daha kolay yönetim için /Applications/ServBay/www
dizinine yerleştirmelerini önerir.
Composer'ı Yükleyin
Composer, ServBay ile önceden yüklü gelir, bu yüzden ayrı olarak yüklemeye gerek yoktur.
Bir CodeIgniter Projesi Oluşturun
Yeni bir CodeIgniter projesi oluşturmak için Composer'ı kullanın:
bashcd /Applications/ServBay/www mkdir servbay-codeigniter-app cd servbay-codeigniter-app composer create-project codeigniter4/appstarter .
1
2
3
4Proje Dizinine Girin
Yeni oluşturulan CodeIgniter proje dizinine girin:
bashcd /Applications/ServBay/www/servbay-codeigniter-app
1
İlk Yapılandırma
Veritabanı Bağlantısını Yapılandırın
app/Config/Database.php
dosyasındaki veritabanı bağlantı ayarlarını 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
CodeIgniter projesine web sunucusu aracılığıyla erişmek için ServBay’in 'Host' işlevini kullanın. ServBay'in 'Host' ayarlarında yeni bir ana bilgisayar ekleyin:
- Adı:
My First CodeIgniter Dev Site
- Domain:
servbay-codeigniter-test.local
- Site Türü:
PHP
- PHP Sürümü:
8.3
seçin - Site Kök Dizini:
/Applications/ServBay/www/servbay-codeigniter-app/public
Ayrıntılı kurulum adımları için lütfen İlk Web Sitesini Ekleme kılavuzuna başvurun.
Örnek Kod Ekleme
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ınızı açın ve aşağıdaki URL'yi ziyaret edin:
https://servbay-codeigniter-test.local
:Hello ServBay!
çıktısını görmelisiniz.
NoSQL Veritabanı Örnekleri
Memcached Örneği
Memcached Uzantısını Yükleyin
Memcached uzantısı ServBay’de önceden yüklüdür, bu yüzden ek bir yükleme gerekmez.
Memcached'i Yapılandırın
app/Config/Cache.php
dosyasındaki Memcached bağlantı bilgilerini yapılandırın:phppublic $memcached = [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 1, ];
1
2
3
4
5Memcached'i Kullanma
Kontrolcüde önbelleği kullanın:
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 rota ekleyin:php$routes->get('/memcached', 'Home::memcached');
1Tarayıcıyı açın ve https://servbay-codeigniter-test.local/memcached ziyaret edin
Redis Örneği
Redis Uzantısını Yükleyin
Redis uzantısı ServBay’de önceden yüklüdür, bu yüzden ek bir yükleme gerekmez.
Redis'i Yapılandırın
app/Config/Cache.php
dosyasındaki 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'i Kullanma
Kontrolcüde önbelleği kullanın:
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 rota ekleyin:php$routes->get('/redis', 'Home::redis');
1Tarayıcıyı açın ve https://servbay-codeigniter-test.local/redis ziyaret edin
İlişkisel Veritabanı Örnekleri
MySQL Örneği
MySQL'i Yapılandırın
app/Config/Database.php
dosyasındaki 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' => '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
19Migration Dosyası Oluşturun
CodeIgniter’ın CLI aracını kullanarak bir migration dosyası oluşturun:
bashphp spark make:migration create_users_table
1Migration Dosyasını Düzenleyin
app/Database/Migrations
dizininde yeni oluşturulan migration 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
32Migration’ı Çalıştırın
Migration komutunu kullanarak migration’ı çalıştırın ve veritabanı tablosunu oluşturun:
bashphp spark migrate
1Rota Ekleyin
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 Ekleyin
Kontrolcüde kullanıcı verilerini ekleyin:
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'i Kullanma
Kontrolcüde veritabanını çağırın:
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
ziyaret edin
PostgreSQL Örneği
PostgreSQL'i Yapılandırın
app/Config/Database.php
dosyasındaki 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
19Migration Dosyası Oluşturun
CodeIgniter’ın CLI aracını kullanarak bir migration dosyası oluşturun:
bashphp spark make:migration create_users_table
1Migration Dosyasını 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('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
32Migration’ı Çalıştırın
Migration komutunu kullanarak migration’ı çalıştırın ve veritabanı tablosunu oluşturun:
bashphp spark migrate
1Rotalar Ekleyin
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 Ekleyin
Kontrolcüde kullanıcı verilerini ekleyin:
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'i Kullanma
Kontrolcüde veritabanını çağırın:
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/p;pgsql-add
vehttps://servbay-codeigniter-test.local/pgsql
ziyaret edin
Yukarıdaki adımlarla, bir CodeIgniter projesi oluşturup çalıştırmayı, ServBay özelliklerini kullanarak projenizi yönetmeyi ve projeye erişimi sağlamayı ve veritabanlarına bağlanıp veri ile etkileşimde bulunmayı başarıyla tamamladınız. Umarım bu makale, CodeIgniter ile hızlıca başlamanıza ve projelerinizde uygulamanıza yardımcı olur.