ThinkPHP 8 Projesi Oluşturma ve Çalıştırma
ThinkPHP Nedir?
ThinkPHP, Çinli PHP geliştiricileri tarafından oluşturulmuş açık kaynaklı bir PHP Web çerçevesidir. Geliştiricilere modern Web uygulamalarını oluşturmak için sade ve verimli bir araç seti sağlama amacındadır. ThinkPHP, yönlendirme, oturum, önbellekleme, kimlik doğrulama gibi zengin özellikler sunarak yaygın Web geliştirme görevlerini basitleştirir.
ThinkPHP'nin Ana Özellikleri ve Avantajları
- Sadelik ve Verimlilik: ThinkPHP'nin sözdizimi sade ve verimlidir, bu da kodun okunabilirliğini ve sürdürülebilirliğini artırır.
- Zengin Özellik Seti: Yönlendirme, kimlik doğrulama, oturum yönetimi ve önbellekleme gibi özellikleri içerir, bu da geliştirme işlerini büyük ölçüde basitleştirir.
- Güçlü ORM: ThinkPHP, güçlü bir veritabanı işlem fonksiyonu sağlar, bu da veritabanı işlemlerini kolaylaştırır.
- Modüler Tasarım: Composer paket yöneticisi aracılığıyla üçüncü parti kütüphaneleri ve eklentileri kolayca entegre eder.
- Güçlü Topluluk Desteği: Geniş bir geliştirici topluluğu ve zengin bir ekosistemle desteklenir.
ThinkPHP, geliştiricilere yüksek kaliteli Web uygulamaları ve API'ler oluşturma sürecini hızlandırır ve küçük ölçekli uygulamalardan büyük kurumsal sistemlere kadar her boyuttaki projelere uygundur.
ServBay Kullanarak ThinkPHP 8 Projesi Oluşturma ve Çalıştırma
Bu makalede, ServBay tarafından sağlanan PHP ortamını kullanarak bir ThinkPHP 8 projesi oluşturacağız ve çalıştıracağız. Web sunucusunu ayarlamak ve projeye erişim sağlamak için ServBay'in 'host' işlevini kullanacağız.
Dikkat: Daha önce NGINX veya Apache Kullanıcısıysanız
ServBay varsayılan olarak Caddy'yi web sunucusu olarak kullanır. NGINX ve Apache'den ServBay'e geçiş yapan kullanıcıların dikkat etmesi gereken bazı önemli değişiklikler vardır:
Caddy Yapılandırması
ServBay, Caddy'yi dahili olarak yapılandırmıştır ve varsayılan olarak optimize edilmiş ve test edilmiştir. Geliştiriciler, ServBay'in 'host' işlevini kullanarak siteleri yönetir, Caddy yapılandırma dosyasını manuel olarak değiştirmeleri gerekmez.
Rewrite Kuralları ve .htaccess
NGINX ve Apache'de, geliştiriciler URL yeniden yazma ve diğer yapılandırmaları işlemek için genellikle kendi rewrite kurallarını ve .htaccess dosyalarını yazarlar. Ancak, ServBay, Caddy kurallarını fabrika çıkışı olarak yapılandırmıştır, bu nedenle özel bir ihtiyaç olmadıkça, geliştiricilerin bu kuralları kendilerinin yazmasına gerek yoktur.
Daha Fazla Bilgi Edinin
Daha fazla bilgi için Rewrite ve htaccess, Apache sitesini ServBay'e nasıl taşınır, NGINX sitesini ServBay'e nasıl taşınır belgelerine bakınız.
ThinkPHP Projesi Oluşturma
TIP
ServBay, geliştiricilerin web sitesini yönetimi kolaylaştırmak için /Applications/ServBay/www
dizininde yerleştirmelerini önerir.
Composer Kurulumu
ServBay Composer’i kendi içinde bulundurur, bu nedenle ayrı olarak kurulmasına gerek yoktur.
ThinkPHP Projesi Oluşturma
Yeni bir ThinkPHP projesi oluşturmak için Composer'i kullanın:
bashcd /Applications/ServBay/www composer create-project topthink/think servbay-thinkphp-app
1
2Proje Dizinine Girin
Yeni oluşturulan ThinkPHP proje dizinine girin:
bashcd /Applications/ServBay/www/servbay-thinkphp-app
1
Yapılandırma Başlatma
Çevre Değişkenlerini Yapılandırın
config/database.php
dosyasında veritabanı bağlantı bilgilerini ve diğer çevre değişkenlerini yapılandırın. Aşağıdaki yapılandırmaların doğru ayarlandığından emin olun:php'type' => 'mysql', 'hostname' => '127.0.0.1', 'database' => 'servbay_thinkphp_app', 'username' => 'root', 'password' => 'password', 'hostport' => '3306',
1
2
3
4
5
6
Web Sunucusunu Yapılandırma
DANGER
ThinkPHP’nin Rewrite kuralları genel kurallardan farklı olduğundan, özel bir yapılandırma gerektirir.
ServBay'in 'host' işlevini kullanarak ThinkPHP projesine erişmek için web sunucusunu kullanın. ServBay'in 'host' ayarlarında yeni bir host ekleyin:
- Adı:
My First ThinkPHP Dev Site
- Alan Adı:
servbay-thinkphp-test.local
Ardından sağ üst köşedeki 'özelleştirilmiş yapılandırma'ya tıklayın ve aşağıdaki içeriği girin:
encode zstd gzip
import set-log servbay-thinkphp-test.local
tls internal
@canonicalPath {
file {
try_files {path}/index.php
}
not path */
}
redir @canonicalPath {path}/ 308
root * /Applications/ServBay/www/servbay-thinkphp-app/public
route {
try_files {path} {path}/ /index.php?s={path}&{query}
php_fastcgi unix//Applications/ServBay/tmp/php-cgi-8.3.sock
}
file_server
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
TIP
Farklı PHP sürümlerine ihtiyacınız varsa, php-cgi-8.3.sock
parametresini ilgili PHP sürümüne göre değiştirin. Ayrıca set-log
u web sitesinin alan adına göre değiştirin.
Detaylı yapılandırma adımları için İlk Web Sitesi Ekleme belgelerine bakınız.
Örnek Kod Ekleme
route/app.php
dosyasına aşağıdaki kodu ekleyerek "Hello ServBay!" yazdırın:
Route::get('servbay', function () {
return 'Hello ServBay!';
});
2
3
Web Sitesini Ziyaret Etme
Tarayıcınızı açın ve https://servbay-thinkphp-test.local/servbay
adresini ziyaret edin, "Hello ServBay!" çıktısını göreceksiniz.
NoSQL Veritabanı Örneği
Memcached Örneği
Memcached Uzantısını Kurma
ServBay'de Memcached uzantısı hazır bulunduğu için ekstra bir kurulum gerekmez.
Memcached’i Yapılandırma
config/cache.php
dosyasında Memcached bağlantı bilgilerini yapılandırın:php'type' => 'memcached', 'host' => '127.0.0.1',
1
2Memcached Kullanımı
Kontrolör içinde önbellek kullanımı:
phpuse think\facade\Cache; Route::get('/memcached', function () { Cache::set('key', 'value', 600); return Cache::get('key'); });
1
2
3
4
5
6
Redis Örneği
Redis Uzantısını Kurma
ServBay'de Redis uzantısı hazır bulunduğu için ekstra bir kurulum gerekmez.
Redis’i Yapılandırma
config/cache.php
dosyasında Redis bağlantı bilgilerini yapılandırın:php'type' => 'redis', 'host' => '127.0.0.1', 'port' => 6379, 'password' => '',
1
2
3
4Redis Kullanımı
Kontrolör içinde önbellek kullanımı:
phpuse think\facade\Cache; Route::get('/redis', function () { Cache::set('key', 'value'); return Cache::get('key'); });
1
2
3
4
5
6
İlişkisel Veritabanı Örneği
Veritabanı Yapısını ve Geçiş Dosyasını Oluşturma
Veritabanı Geçiş Araçlarını Yükleme
ThinkPHP'nin veritabanı geçiş araçlarını kullanmadan önce yükleyin:
bashcomposer require topthink/think-migration
1Geçiş Dosyasını Oluşturma
ThinkPHP'nin komut satırı ara yüzünü kullanarak geçiş dosyasını oluşturun:
bashphp think migrate:create CreateUserTable
1Geçiş Dosyasını Düzenleme
database/migrations
dizininde yeni oluşturulan geçiş dosyasını bulun ve veritabanı tablosu yapısını tanımlamak için düzenleyin:phppublic function up() { Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); }); }
1
2
3
4
5
6
7
8
9Geçişi Çalıştırma
ThinkPHP'nin komut satırı ara yüzünü kullanarak geçişi çalıştırın, veritabanı tablosunu oluşturun:
bashphp think migrate:run
1
MySQL Örneği
MySQL Yapılandırması
config/database.php
dosyasında MySQL bağlantı bilgilerini yapılandırın:php'type' => 'mysql', 'hostname' => '127.0.0.1', 'database' => 'servbay_thinkphp_app', 'username' => 'root', 'password' => 'password', 'hostport' => '3306',
1
2
3
4
5
6Kullanıcı Verisi Yazma
Kontrolörde kullanıcı verisi yazma:
phpuse think\Db; Route::get('/mysql-add', function () { Db::table('users')->insert([ 'name' => 'ServBay', 'email' => '[email protected]', ]); return 'User added'; });
1
2
3
4
5
6
7
8
9MySQL Kullanımı
Kontrolörde veritabanı çağırma:
phpuse think\Db; Route::get('/mysql', function () { $users = Db::table('users')->select(); return json($users); });
1
2
3
4
5
6
PostgreSQL Örneği
PostgreSQL Yapılandırması
config/database.php
dosyasında PostgreSQL bağlantı bilgilerini yapılandırın:php'type' => 'pgsql', 'hostname' => '127.0.0.1', 'database' => 'servbay_thinkphp_app', 'username' => 'root', 'password' => 'password', 'hostport' => '5432',
1
2
3
4
5
6Kullanıcı Verisi Yazma
Kontrolörde kullanıcı verisi yazma:
phpuse think\Db; Route::get('/pgsql-add', function () { Db::table('users')->insert([ 'name' => 'ServBay', 'email' => '[email protected]', ]); return 'User added'; });
1
2
3
4
5
6
7
8
9PostgreSQL Kullanımı
Kontrolörde veritabanı çağırma:
phpuse think\Db; Route::get('/pgsql', function () { $users = Db::table('users')->select(); return json($users); });
1
2
3
4
5
6
Yukarıdaki adımları tamamlayarak, bir ThinkPHP 8 projesi oluşturup çalıştırdınız ve ServBay’in sağladığı fonksiyonları kullanarak projenizi yönettiniz ve çeşitli veritabanlarına bağlandınız ve verilerle işlemler yaptınız.