macOS Üzerinde ServBay ile PHPixie Projesi Oluşturma ve Çalıştırma
PHPixie, hafif ve yüksek performanslı bir PHP framework'üdür ve web uygulamalarını hızlı bir şekilde geliştirmek için tasarlanmıştır. HMVC (Hierarchical Model-View-Controller) tasarım desenini benimser; sade kod yapısı ve verimli işlem gücü sunar. Basit, esnek ve yüksek performansı ile birçok geliştirici tarafından tercih edilmektedir.
PHPixie'nin Temel Özellikleri ve Avantajları
- Hafiflik: PHPixie'nın çekirdek sistemi oldukça küçüktür; yalnızca uygulama geliştirmek için gerekli temel bileşenleri içerir, hızlı başlar ve çalışır.
- Yüksek Performans: Framework, verimlilik odaklıdır; yüksek performans gerektiren uygulamalar için eşzamanlı istekleri etkili bir şekilde işler.
- Kolay Öğrenilebilirlik: Açık ve sade API ile kapsamlı dokümantasyon sunar; geliştiriciler kolayca framework'ü öğrenip uygulamaya geçebilir.
- Esneklik: Yapısı gevşek bağlıdır; geliştiricilere, projelerine uygun şekilde üçüncü parti kütüphane/bileşen ekleyebilme özgürlüğü tanır.
- Aktif Topluluk Desteği: Canlı bir geliştirici topluluğu ile çok sayıda üçüncü parti eklenti ve destek kaynakları bulunur.
PHPixie, küçük projelerden büyük ölçekli kurumsal uygulamalara kadar esnek ve yüksek kaliteli web uygulamaları geliştirmek için idealdir.
ServBay Kullanarak PHPixie Projesi Oluşturma ve Çalıştırma
Bu rehber, ServBay'in sunduğu yerel web geliştirme ortamı aracılığıyla bir PHPixie projesi oluşturup çalıştırmanın adımlarını aktarır. ServBay'in entegre PHP ortamı, Composer bağımlılık yöneticisi ve “Websiteler” özelliğini kullanarak web sunucusu konfigürasyonundan, projenizin yerel erişimine ve veri tabanı/önbellek entegrasyonuna kadar tüm aşamaları bulacaksınız.
Ön Koşullar
- ServBay'in macOS üzerinde kurulu ve çalışıyor olması (ServBay, PHP, Composer, çeşitli veri tabanları [MySQL, PostgreSQL, MongoDB, Redis vb.] ve Caddy Web sunucusunu entegre olarak sunar).
- Temel komut satırı işlemlerine aşinalık.
PHPixie Projesi Oluşturma
Önerilen web sitesi dizin yolu
ServBay, yerel web sitesi projelerinizi düzenli yönetim ve erişim kontrolü için /Applications/ServBay/www
dizininde toplamanızı önerir.
- Composer'ın Kurulu Olduğundan Emin Olun: ServBay, Composer ile hazır olarak gelir; ekstra bir kurulum gerekmez. Terminali açıp
composer --version
komutunu girerek kontrol edebilirsiniz. - Proje Dizinini Oluşturun: ServBay'in önerdiği web sitesi kök dizininde, PHPixie projeniz için yeni bir klasör oluşturun ve bu dizine girin:bash
cd /Applications/ServBay/www mkdir servbay-phpixie-app cd servbay-phpixie-app
1
2
3 - Composer ile PHPixie Projesi Oluşturun: Proje dizininde şu Composer komutunu çalıştırarak PHPixie proje şablonunu indirin:bashComposer, PHPixie ve bağımlılıklarını mevcut dizine yükleyecektir.
composer create-project phpixie/project .
1
Web Sunucusunun Yapılandırılması
ServBay'in Websiteler özelliğini kullanarak Caddy Web sunucusunu projenizi doğru şekilde çalıştıracak biçimde ayarlayabilirsiniz.
ServBay uygulama arayüzünü açın.
Websiteler (Websites) listesine gidin.
Yeni bir web sitesi eklemek için tıklayın.
Web sitesi yapılandırma bilgilerini doldurun:
- İsim: Örneğin
My First PHPixie Dev Site
(ServBay içindeki tanımlama adıdır). - Alan adı: Örneğin
servbay-phpixie-test.local
(tarayıcıda erişeceğiniz yerel geliştirme domaini). - Web sitesi türü:
PHP
olarak seçin. - PHP sürümü: Kullanmak istediğiniz PHP sürümünü seçin, örn.
8.3
. - Web sitesi kök dizini (Document Root): Projenizin
web
klasörünü gösterin:/Applications/ServBay/www/servbay-phpixie-app/web
.
Neden
/web
dizini?PHPixie projesinin giriş dosyası
web/index.php
'dir. Güvenlik ve en iyi uygulamalar için web sunucusunun kök dizini doğrudan bu giriş dosyasını içerenweb
klasörüne yönlendirilmelidir; üst dizine verilmez. Böylece proje içerisindeki hassas dosyaların (ör. yapılandırma dosyaları, vendor klasörü vs.) doğrudan web üzerinden erişilmesi engellenir.- İsim: Örneğin
Yapılandırmayı kaydedin. ServBay, Caddy konfigürasyonunu ve gerekirse yerel hosts dosyanızı otomatik olarak günceller ve
servbay-phpixie-test.local
yerel ServBay sunucunuza yönlendirilir.
Ayrıntılı adımlar için İlk Web Sitesi Ekleme sayfasına bakabilirsiniz.
Örnek Kod Ekleme
Projenin doğru şekilde çalıştığını doğrulamak ve veri tabanı & önbellek entegrasyonunu göstermek için projeye örnek kodlar ekleyeceğiz.
Örnek Bir Controller Oluşturun:
src/App/HTTP/Controller/Home.php
yolunda aşağıdaki kodu kaydedin. Klasör veya dosya yoksa elle oluşturun.php<?php namespace App\HTTP\Controller; use PHPixie\HTTP\Request; use PHPixie\Template; use PHPixie\Database\Query; // Query sınıfını dahil et class Home extends \PHPixie\Controller { protected $template; public function __construct(Template $template) { $this->template = $template; } // Varsayılan ana sayfa action'ı public function action_index(Request $request) { // assets/templates/app/home.php şablonunu render et return $this->template->render('app:home'); } // Memcached örneği action public function action_memcached(Request $request) { $cache = $this->components->cache(); $cache->set('key', 'ServBay’den Merhaba Memcached!', 60); // Veri kaydet, 60 sn geçerli $value = $cache->get('key'); // Veriyi al return $this->response()->string($value); // String cevap döndür } // Redis örneği action public function action_redis(Request $request) { $redis = $this->components->redis(); $redis->set('key', 'ServBay’den Merhaba Redis!'); // Veri kaydet $value = $redis->get('key'); // Veriyi al return $this->response()->string($value); // String cevap döndür } // MySQL/PostgreSQL kullanıcı ekleme örneği action public function action_add_user(Request $request) { // Veritabanı bileşeninden sorgu oluşturucu al $query = $this->components->database()->query(); // 'users' tablosuna yeni kullanıcı ekle $query->insert('users')->data([ 'name' => 'ServBay Demo Kullanıcısı', 'email' => 'demo-' . uniqid() . '@servbay.test', // Benzersiz mail oluştur ])->execute(); // Ekleme işlemini yap return $this->response()->string('Kullanıcı başarıyla eklendi.'); // Başarı mesajı döndür } // MySQL/PostgreSQL kullanıcıları listeleme örneği action public function action_list_users(Request $request) { // Veritabanı bileşeninden sorgu oluşturucu al $query = $this->components->database()->query(); // 'users' tablosundaki tüm kullanıcıları sorgula $users = $query->select('*')->from('users')->execute()->fetchAll(); // Sorgu ve tüm sonuçları al return $this->response()->json($users); // Kullanıcı listesini JSON olarak döndür } }
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67Örnek Şablon Oluşturun:
assets/templates/app/home.php
dosyasına aşağıdaki kodu ekleyin. Yol ve dosya yoksa oluşturun.php<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>ServBay ile PHPixie'ye Hoş Geldiniz</title> <style> body { font-family: sans-serif; line-height: 1.6; margin: 20px; } h1 { color: #333; } p { margin-bottom: 15px; } code { background-color: #f4f4f4; padding: 2px 5px; border-radius: 4px; } ul { list-style: none; padding: 0; } li { margin-bottom: 10px; } li a { text-decoration: none; color: #007bff; } li a:hover { text-decoration: underline; } </style> </head> <body> <h1>ServBay ile PHPixie'ye Hoş Geldiniz</h1> <p>Bu sayfa, ServBay üzerinde çalışan PHPixie uygulamanız tarafından dinamik olarak üretiliyor.</p> <h2>Örnek Fonksiyon Bağlantıları:</h2> <ul> <li><a href="/home/memcached">Memcached Testi</a></li> <li><a href="/home/redis">Redis Testi</a></li> <li><a href="/home/add_user">Veri Tabanına Kullanıcı Ekle</a></li> <li><a href="/home/list_users">Veri Tabanındaki Kullanıcıları Listele</a></li> </ul> <p>Lütfen ilgili veri tabanı ve önbellek yapılandırmasını tamamladığınızdan emin olun.</p> </body> </html>
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
32
33
Temel Siteye Erişim
ServBay web sitesi ayarlarını yapıp örnek kodları ekledikten sonra, belirlediğiniz alan adı ile projenizi tarayıcıda çalıştırabilirsiniz:
- Tarayıcıyı açıp
https://servbay-phpixie-test.local
adresine gidin. - "ServBay ile PHPixie'ye Hoş Geldiniz" başlığını ve örnek fonksiyon bağlantılarını görmelisiniz.
Erişilemiyorsa şunları kontrol edin:
- ServBay çalışıyor mu?
- ServBay'deki web sitesi ayarlarında, özellikle alan adı, web sitesi türü ve kök dizin doğru mu?
- Yerel hosts dosyasında
servbay-phpixie-test.local
doğru yönlendirilmiş mi? (ServBay genellikle bunu otomatik yapar) - Gerekli PHP sürümü aktif mi?
Veri Tabanı ve Önbellek Entegrasyonu
PHPixie, birçok veri tabanı ve önbellek sistemini yerleşik olarak destekler. ServBay ise MySQL, PostgreSQL, Redis, Memcached gibi paketleri kullanıma hazır sunarak PHPixie projelerine kolayca entegre olmanızı sağlar.
Önemli Not: Veri tabanı işlemlerinden önce ServBay'de ilgili veri tabanı servislerinin (ör. MySQL veya PostgreSQL) başlatıldığından ve proje için gerekli veri tabanının oluşturulduğundan emin olun. Örneğin, bu rehberde kullanılan veri tabanı adı servbay_phpixie_app
'tir. ServBay'in sağladığı Sequel Ace, Postico, TablePlus gibi istemcilerle veya komut satırıyla veri tabanınızı oluşturabilirsiniz. ServBay'in varsayılan veri tabanı kullanıcısı genellikle root
, şifresi ise password
'dur (Sizin ayarınıza bağlı olarak farklı olabilir).
Veri Tabanı Bağlantısını Yapılandırma
Kullandığınız veri tabanı tipine göre (MySQL veya PostgreSQL), projenizin kök dizininde yer alan assets/config/database.php
dosyasını düzenleyin. ServBay'de varsayılan veri tabanı adresi genellikle 127.0.0.1
'dir.
MySQL Yapılandırma Örneği (assets/config/database.php
):
<?php
return [
'default' => [
'driver' => 'pdo',
// connection dizesini veri tabanı türünüze ve ServBay ayarlarınıza göre düzenleyin
'connection' => 'mysql:host=127.0.0.1;dbname=servbay_phpixie_app',
'user' => 'root', // ServBay varsayılan kullanıcı
'password' => 'password', // ServBay varsayılan şifre (Gerekiyorsa değiştirin)
'options' => []
]
];
2
3
4
5
6
7
8
9
10
11
12
PostgreSQL Yapılandırma Örneği (assets/config/database.php
):
<?php
return [
'default' => [
'driver' => 'pdo',
// connection dizesini veri tabanı türünüze ve ServBay ayarlarınıza göre düzenleyin
'connection' => 'pgsql:host=127.0.0.1;dbname=servbay_phpixie_app',
'user' => 'root', // ServBay varsayılan kullanıcı
'password' => 'password', // ServBay varsayılan şifre (Gerekiyorsa değiştirin)
'options' => []
]
];
2
3
4
5
6
7
8
9
10
11
12
Veri Tabanı Tablosu Oluşturma (Migration Kullanımı)
PHPixie'nin sağladığı komut satırı aracıyla veri tabanı şema sürümlemeleri (migration) rahatça yönetilebilir.
- Terminali Açın: Proje kök dizinine geçin:bash
cd /Applications/ServBay/www/servbay-phpixie-app
1 - Migration Dosyası Oluşturun: PHPixie CLI ile yeni migration oluşturun. Örneğin
users
tablosu için:bashBu komut,php pixie generate:migration create_users_table
1assets/migrations
altında zaman damgalı bir PHP dosyası oluşturur. - Migration Dosyasını Düzenleyin:
assets/migrations
içindeki yeni migration dosyasını (örneğinYYYY_MM_DD_HHMMSS_create_users_table.php
) açın veup()
iledown()
metodlarını aşağıdaki gibi doldurun:php<?php use PHPixie\Database\Migration; use PHPixie\Database\Schema\Table; class CreateUsersTable extends Migration { public function up() { // 'users' tablosunu schema builder ile oluştur $this->schema->create('users', function(Table $table) { $table->increments('id'); // Otomatik artan anahtar $table->string('name'); // Kullanıcı adı kolonu $table->string('email')->unique(); // E-posta kolonu, benzersiz $table->timestamps(); // created_at ve updated_at kolonları }); } public function down() { // 'users' tablosunu sil $this->schema->drop('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 - Migration'ı Çalıştırın: Proje dizininde terminalden şu komutu verin:bashSorunsuz tamamlanırsa terminalde başarı iletisi görürsünüz. Ayrıca veri tabanı istemciniz veya aracı ile
php pixie migrate
1servbay_phpixie_app
içindeusers
tablosunu görebilirsiniz.
İlişkisel Veri Tabanı (MySQL/PostgreSQL) Kullanımı
Yukarıda oluşturduğunuz src/App/HTTP/Controller/Home.php
controller'ında action_add_user
ve action_list_users
örnekleri, PHPixie'nin veri tabanı bileşeni ile MySQL/PostgreSQL üzerinden CRUD işlemi yapmayı gösterir.
- Kullanıcı ekle:
https://servbay-phpixie-test.local/home/add_user
adresine gittiğinizdeusers
tablosuna yeni bir kullanıcı eklenecek. - Kullanıcıları listele:
https://servbay-phpixie-test.local/home/list_users
adresi ise kullanıcıları JSON formatında döndürecektir.
NoSQL Veri Tabanı (Memcached/Redis) Yapılandırma ve Kullanımı
ServBay, Memcached ve Redis paketlerini ve bunların PHP eklentilerini önceden kurulu olarak sağlar. Tek yapmanız gereken PHPixie projesinde yapılandırmaları yapmak.
Memcached Yapılandırması (assets/config/cache.php
):
assets/config/cache.php
dosyasını düzenleyip Memcached ayarlarını ekleyin:
<?php
return [
'default' => [
'driver' => 'memcached',
'servers' => [
[
'host' => '127.0.0.1', // ServBay Memcached varsayılan adresi
'port' => 11211, // ServBay Memcached varsayılan portu
'weight' => 100,
],
],
],
];
2
3
4
5
6
7
8
9
10
11
12
13
14
Redis Yapılandırması (assets/config/redis.php
):
assets/config/redis.php
'yu düzenleyip Redis ayarlarını ekleyin:
<?php
return [
'default' => [
'hostname' => '127.0.0.1', // ServBay Redis varsayılan adresi
'port' => 6379, // ServBay Redis varsayılan portu
'timeout' => 0,
'database' => 0, // Redis veritabanı indeksi
],
];
2
3
4
5
6
7
8
9
10
Memcached/Redis Kullanımı:
Örnek controller'daki action_memcached
ve action_redis
yöntemlerinde, PHPixie’nin önbellek bileşeni ile Memcached veya Redis’in nasıl kullanılacağını görebilirsiniz.
- Memcached testi:
https://servbay-phpixie-test.local/home/memcached
ile bir anahtar Memcached’e yazılır ve okunan değer döndürülür. - Redis testi:
https://servbay-phpixie-test.local/home/redis
ile bir anahtar Redis’e yazılır ve okunan değer döndürülür.
İlgili Memcached ve Redis paketlerinin ServBay uygulamasında açık olduğuna emin olun.
Sonuç
Tüm bu adımların ardından, macOS üzerinde ServBay kullanarak başarılı bir şekilde PHPixie projenizi kurup çalıştırmış olacaksınız. Composer ile proje oluşturmayı; ServBay’in Websiteler ile web sunucusu konfigürasyonunu, temel veri tabanı ve önbellek entegrasyonu yapılandırmalarını ve fonksiyonalite doğrulamayı öğrenmiş olacaksınız.
ServBay’in sunduğu tümleşik geliştirme ortamı, PHP projelerinizin kurulum sürecini önemli ölçüde kolaylaştırır — böylece kodlamaya odaklanabilirsiniz. Umarız bu rehberle PHPixie ile sonraki web projenize hızlı bir başlangıç yapabilirsiniz!