Phalcon Projesi Oluşturma ve Çalıştırma
Phalcon Nedir?
Phalcon, C uzantısı olarak geliştirilmiş, açık kaynak kodlu ve yüksek performanslı bir PHP web framework’üdür. Bu yenilikçi geliştirme yaklaşımı sayesinde Phalcon, son derece düşük kaynak tüketimi ve çok yüksek yürütme hızına ulaşarak, geleneksel PHP framework'lerinden önemli derecede üstün bir performans sunar. Phalcon, MVC (Model-View-Controller) mimarisini benimseyerek, geliştiricilere zengin özelliklerle donatılmış birçok bileşen sağlar: ORM (Nesne-İlişkisel Haritalama), şablon motoru, yönlendirme, önbellekleme, olay yöneticisi ve daha fazlası. Bu araçlar sayesinde geliştiriciler hem güçlü ve yüksek performanslı web uygulamaları hem de API’ler hızlıca inşa edebilir.
Phalcon’un Temel Özellikleri ve Avantajları
- Üstün Performans: C uzantısı olarak çalışan Phalcon, PHP betiklerinin ayrıştırılması ve yüklenmesi aşamasındaki ek yükü ortadan kaldırarak, yerel düzeyde hız sunar.
- Kaynak Verimliliği: Son derece düşük bellek kullanımı ile performans ve ölçeklenebilirlik gerektiren projelere uygundur.
- Kapsamlı Özellikler: Web geliştirme için gerekli çoğu temel bileşen dahili olarak sunulur, ek kütüphane bağımlılığı azalır.
- Kullanım Kolaylığı: Anlaşılır, tutarlı bir API ve kapsamlı dokümantasyon sayesinde yeni başlayanlar bile Phalcon’a hızla adapte olabilir.
- Yüksek Modülerlik: Bileşenler birbirinden bağımsızdır; proje ihtiyaçlarına göre seçilebilir veya değiştirilebilir.
- Güvenlik: Girdi filtreleme ve CSRF koruması gibi pek çok güvenlik bileşeni sunar.
Sonuç olarak, Phalcon yüksek hızlı ve kaynak verimli web uygulama ve API geliştirmek isteyenler için ideal bir tercihtir.
ServBay ile Phalcon Projesi Oluşturma ve Çalıştırma
ServBay, macOS için özel olarak tasarlanmış bir yerel web geliştirme ortamıdır. Farklı PHP sürümlerini, çeşitli veritabanlarını (MySQL, PostgreSQL, MongoDB, Redis gibi) ve web sunucularını (Caddy, Nginx, Apache) kolayca yönetebilir, ayrıca geliştirici araçlarını entegre şekilde sunar. ServBay ile Phalcon projeleri için ihtiyaç duyulan tüm ortamları kolayca oluşturabilirsiniz.
Bu rehberde ServBay’in PHP ortamı kullanılarak temel bir Phalcon projesi oluşturma, erişilebilir olması için web sunucusu ayarlama ve MySQL ile Redis gibi veritabanlarını projeye ekleme adımları gösterilecektir.
Ön Gereklilikler
Başlamadan önce aşağıdaki ön şartları karşılayın:
- ServBay Kurulu ve Çalışıyor: ServBay’i macOS’a başarıyla kurup başlatın.
- Gerekli PHP Sürümü Aktif olmalı: ServBay üzerinden kullanmak istediğiniz PHP sürümünü etkinleştirin.
- Phalcon Modülü Etkinleştirildi: ServBay’de Phalcon modülü gömülü olarak gelir, ancak varsayılan olarak kapalı olabilir. ServBay’de gömülü Phalcon modülünün nasıl etkinleştirileceği dokümanına bakarak seçili PHP sürümü için Phalcon eklentisini aktifleştirip PHP hizmetini yeniden başlatın.
- Composer Kurulu Olmalı: ServBay Composer ile birlikte gelir; ayrıca yüklemeniz gerekmez. Terminalde
composer
komutunun çalıştığından emin olun.
Phalcon ve DevTools Sürümleri
Phalcon framework’ü ve yanındaki geliştirme araçları (Phalcon DevTools), kullandığınız PHP sürümüyle uyumlu olmalıdır. Aşağıdaki tabloda sık kullanılan PHP sürümleriyle uyumlu önerilen Phalcon ve DevTools versiyonları listelenmiştir:
PHP Sürümü | Önerilen Phalcon Versiyonu | Önerilen Phalcon DevTools Sürümü | Dikkat Edilmesi Gerekenler |
---|---|---|---|
PHP 5.6, 7.0, 7.1 | Phalcon 3.4.5 | 3.4.x | |
PHP 7.2, 7.3, 7.4 | Phalcon 4.1.2 | ~4.1 (veya 4.3.x ) | |
PHP 8.0, 8.1, 8.2 | Phalcon 5.x | 5.0.x (Resmi) | Resmi DevTools, PHP 8.x ile uyum sorunu yaşayabilir. |
PHP 8.3, 8.4 | Phalcon 5.x | dev-master (düzeltilmiş sürüm) | Daha iyi uyumluluk için topluluk tarafından düzeltilmiş sürüm önerilir. |
Önemli Not: PHP 8.x ve sonrasında, resmi Phalcon DevTools uyumluluk sorunları gösterebilir. Topluluk tarafından sağlanan yamalı sürümler önerilir. Aşağıdaki adımlarda Composer üzerinden yamalı DevTools sürümünün nasıl kurulacağı anlatılacaktır.
Phalcon Projesi Oluşturma
Site için önerilen dosya yolu
Yönetim kolaylığı için ServBay, tüm web sitelerinizi varsayılan kök dizinde, /Applications/ServBay/www
altında tutmanızı önerir. Örnek proje bu dizinde oluşturulacaktır.
Site kök dizinine girin ve proje klasörü oluşturun
Terminali açın, ServBay'in web site kök dizinine gidin ve Phalcon projeniz için yeni bir klasör oluşturun (ör:
servbay-phalcon-app
):bashcd /Applications/ServBay/www mkdir servbay-phalcon-app cd servbay-phalcon-app
1
2
3Phalcon DevTools'u Kurun
Phalcon DevTools, komut satırında kod oluşturmak, proje altyapısı inşa etmek, veritabanı migrasyonlarını yönetmek gibi işlemler için kullanılır. Composer ile kurulabilir. Kullandığınız PHP sürümüne göre komutlar farklıdır:
PHP 5.6, 7.0, 7.1 için (DevTools
^3.4
):bashcomposer require phalcon/devtools:"^3.4"
1PHP 7.2, 7.3, 7.4 için (DevTools
~4.1
):bashcomposer require phalcon/devtools:"~4.1"
1PHP 8.0, 8.1, 8.2, 8.3, 8.4 için (DevTools
dev-master
yamalı sürüm): Resmi DevTools, PHP 8.x üzerinde tam uyumlu değilse, Composer ile topluluk tarafından düzeltilmiş versiyon kurulmalı. Önce proje kökünde (/Applications/ServBay/www/servbay-phalcon-app
)composer.json
dosyasına ek depoyu tanımlayın:json{ "repositories": [ { "url": "https://github.com/daleffe/phalcon-devtools-5.x-fixed.git", "type": "git" } ], "require": { "phalcon/devtools": "dev-master" }, "minimum-stability": "dev", "prefer-stable": true }
1
2
3
4
5
6
7
8
9
10
11
12
13Sonra Composer güncelleme komutu ile DevTools’u kurun:
bashcomposer update
1
Composer, proje kökünde (
servbay-phalcon-app
) birvendor
klasörü ve içindekivendor/bin/phalcon
dosyasını oluşturacaktır.Phalcon DevTools ile proje altyapısı oluşturun
Artık DevTools ile temel dosya yapısını oluşturabilirsiniz. Kodlar bir alt klasöre (ör: yine
servbay-phalcon-app
, DevTools'un standart davranışı) yerleştirilecektir:bashvendor/bin/phalcon project servbay-phalcon-app
1Bu komut,
/Applications/ServBay/www/servbay-phalcon-app
dizini içinde yeni bir alt klasör (/Applications/ServBay/www/servbay-phalcon-app/servbay-phalcon-app
) ve Phalcon projesinin iskeletini oluşturur.Proje kodu dizinine girin
Yeni oluşturduğunuz proje klasörüne gidin:
bashcd servbay-phalcon-app
1Artık
/Applications/ServBay/www/servbay-phalcon-app/servbay-phalcon-app
içindesiniz.
Proje Ortamını Yapılandırma
Phalcon projelerinde temel ayar genellikle app/config/config.php
dosyasında tutulur. Burada veritabanı bağlantı bilgileri ve uygulama yolları gibi önemli ayarlar bulunur.
Yapılandırma dosyasını düzenleyin
Kendi kod editörünüzle
/Applications/ServBay/www/servbay-phalcon-app/servbay-phalcon-app/app/config/config.php
dosyasını açın. Veritabanı yapılandırma bölümünü bulup ayarlayın. ServBay’in MySQL/MariaDB varsayılan kullanıcı adıroot
, şifre ise boştur; fakat güvenlik için güçlü bir parola ayarlamanız tavsiye edilir. Örnek olarakpassword
kullanılmıştır, gerçek ayarınızla değiştirin. Veritabanı adı olarakservbay_phalcon_app
örnek olarak verilmiştir (bu veritabanını elle oluşturmalısınız).phpreturn new \Phalcon\Config([ // ... diğer ayarlar ... 'database' => [ 'adapter' => 'Mysql', // veya 'Postgres' 'host' => '127.0.0.1', 'username' => 'root', // ServBay varsayılan root 'password' => 'password', // <-- Kendi veritabanı şifrenizi girin 'dbname' => 'servbay_phalcon_app', // <-- Kendi veritabanı adınızı girin ], // ... diğer ayarlar ... ]);
1
2
3
4
5
6
7
8
9
10
11Önemli: ServBay’de ilgili veritabanı servisinin (MySQL/MariaDB vb.) açık olduğundan emin olun; kullanıcı adı ve parola ayarları ile veritabanı ismi aynı olmalı.
servbay_phalcon_app
veritabanını kendi başınıza oluşturmalısınız. ServBay’in phpMyAdmin veya Adminer gibi yönetim aracı ile bu işleri halledebilirsiniz.
Web Sunucusunu Yapılandırma (ServBay Sitesi Özelliği ile)
Projeye tarayıcı ile erişim sağlamak için ServBay’in Site özelliği ile sanal bir host ekleyip, projenin erişilebilir dizinine yönlendirmelisiniz.
- ServBay Uygulamasını Açın
- ‘Site’ ayarına girin: ServBay ana ekranında ‘Site’ seçeneğine tıklayın.
- Yeni site ekleyin:
- Ad: Kolay tanıyacağınız bir ad girin (ör:
My First Phalcon Dev Site
). - Alan Adı: Tarayıcıda erişim için bir alan adı seçin (ör:
servbay-phalcon-test.local
). ServBay.local
uzantılı alanları otomatik olarak yerel sisteme yönlendirir. - Site Tipi:
PHP
seçin. - PHP Sürümü: Projede Phalcon modülünü etkinleştirdiğiniz PHP sürümünü seçin.
- Site Kök Dizini: Phalcon projelerinde giriş dosyası
index.php
genelliklepublic
klasöründe bulunur. Kök dizini olarak/Applications/ServBay/www/servbay-phalcon-app/servbay-phalcon-app/public
seçin.
- Ad: Kolay tanıyacağınız bir ad girin (ör:
- Ayarları kaydedin: Yeni siteyi kaydedin. ServBay değişiklikleri otomatik uygular; gerekirse web sunucusunu (Caddy veya Nginx) yeniden başlatmalı.
Detaylı ayarlar için İlk Site Ekleme dokümanını inceleyin. Sonrasında, ServBay alan adı çözümlemelerini ve web sunucusu yapılandırmasını otomatik halleder.
Örnek Kod Ekleyelim
Projenizin doğru çalışıp çalışmadığını test edecek basit kodları ekleyelim.
Yönlendirme ayarını yapın
/Applications/ServBay/www/servbay-phalcon-app/servbay-phalcon-app/app/config/routes.php
dosyasına kök yol/
için yönlendirme kuralı ekleyin:php<?php use Phalcon\Mvc\Router; $router = new Router(false); // Varsayılan yönlendirme: '/' yolunu IndexController’ın indexAction’una bağlar $router->add( '/', [ 'controller' => 'index', 'action' => 'index', ] ); // ... diğer yönlendirmeler eklenebilir ... $router->handle($_SERVER['REQUEST_URI']); return $router;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19Kontrolcü oluşturun
/Applications/ServBay/www/servbay-phalcon-app/servbay-phalcon-app/app/controllers/IndexController.php
dosyasını oluşturun (veya yoksa yeni oluşturun), basit birindexAction
metodu ekleyin:php<?php namespace App\Controllers; // Namespace doğru olmalı use Phalcon\Mvc\Controller; class IndexController extends Controller { // Kök '/' yolunu işler public function indexAction() { // Basit bir metin döndürür return 'Hello ServBay!'; } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Siteye Erişim
Tüm dosyaları kaydedin, ServBay’in çalıştığından emin olun ve web tarayıcınızdan sitenizin alan adına gidin:
https://servbay-phalcon-test.local
Her şey doğru yapılandırıldıysa, tarayıcıda Hello ServBay!
mesajını göreceksiniz.
Veritabanı Entegrasyonu
Phalcon güçlü bir veritabanı soyutlama ve ORM sunar. ServBay ile çeşitli veritabanlarını kolayca Phalcon projelerine ekleyebilirsiniz. Aşağıda MySQL ve Redis örnekleri verilmiştir.
İlişkisel Veritabanı: MySQL
ServBay’deki MySQL servisine bağlanıp, Phalcon’un veritabanı adaptörü ile örnek veri ekleme ve sorgulama işlemleri gösterilecektir.
Veritabanı yapısını oluşturun (Migration ile)
Phalcon DevTools ile migration (göç) işlemleriyle veritabanı şemasını yönetebilirsiniz.
Boş migration dosyası oluşturun: Proje kod klasöründe (
/Applications/ServBay/www/servbay-phalcon-app/servbay-phalcon-app
) aşağıdaki komutla migration dosyası yaratın:bashvendor/bin/phalcon migration generate
1Yeni migration dosyanız
migrations
klasöründe oluşacak, isim olarakYYYYMMDDHHMMSS_MigrationName.php
benzeri bir dosya.Migration dosyasını düzenleyin: Oluşan dosyada
morph
metodunu düzenleyip basit birusers
tablosu tanımlayın:php<?php use Phalcon\Db\Column; use Phalcon\Db\Index; use Phalcon\Migrations\Mvc\Model\Migration; /** * Class UsersMigration_100 */ class UsersMigration_100 extends Migration // Sınıf ismi dosya ismiyle aynı olmalı { /** * Migration’ı çalıştırır * * @return void */ public function morph() { $this->morphTable('users', [ 'columns' => [ new Column( 'id', [ 'type' => Column::TYPE_INTEGER, 'autoIncrement' => true, 'notNull' => true, 'primary' => true, ] ), new Column( 'name', [ 'type' => Column::TYPE_VARCHAR, 'size' => 255, 'notNull' => true, ] ), new Column( 'email', [ 'type' => Column::TYPE_VARCHAR, 'size' => 255, 'notNull' => true, 'unique' => true, ] ), ], 'indexes' => [ new Index('PRIMARY', ['id'], 'PRIMARY'), new Index('email_UNIQUE', ['email'], 'UNIQUE'), ], 'options' => [ 'TABLE_ENGINE' => 'InnoDB', 'CHARACTER SET' => 'utf8mb4', 'COLLATE' => 'utf8mb4_unicode_ci', ], ]); } /** * Migration’ı geri alır * * @return void */ public function down() { // Opsiyonel: Rollback için örnek; tabloyu silme // $this->getConnection()->dropTable('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
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
68
69
70Not: Sınıf adı (örn:
UsersMigration_100
) dosya ismiyle aynı olmalı; isimde genellikle zaman damgası ve migration adı bulunur.Migration’ı çalıştırın: Proje kod klasöründe aşağıdaki komutla migration işlemini başlatıp
users
tablosunu veritabanında oluşturun:bashvendor/bin/phalcon migration run
1Bağlantı hatası alırsanız,
app/config/config.php
içindeki veritabanı ayarlarını ve ServBay’in MySQL/MariaDB servisinin açık olup olmadığını tekrar kontrol edin.
Veritabanı bağlantısını yapılandırma (önceden yapılmıştı)
app/config/config.php
dosyasındaki'database'
bölümünün ServBay’deki MySQL/MariaDB servisine doğru şekilde işaret ettiğinden emin olun (varsayılanhost
127.0.0.1
, port 3306, kullanıcıroot
, şifre ise kendi ayarınıza göre olmalıdır).Örnek yönlendirme ekleyin
app/config/routes.php
dosyasına kullanıcı ekleme ve sorgulama için yeni yollar tanımlayın:php<?php use Phalcon\Mvc\Router; $router = new Router(false); $router->add('/', [ 'controller' => 'index', 'action' => 'index', ]); // Kullanıcı ekleme için route $router->add( '/mysql-add', [ 'controller' => 'index', 'action' => 'mysqlAdd', ] ); // Kullanıcı sorgulama için route $router->add( '/mysql', [ 'controller' => 'index', 'action' => 'mysql', ] ); $router->handle($_SERVER['REQUEST_URI']); return $router;
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
31Kontrolcüde veritabanı işlemlerini gerçekleştirin
app/controllers/IndexController.php
dosyasınamysqlAddAction
vemysqlAction
metotlarını ekleyin. Burada doğrudan Phalcon’un veritabanı bağlantı servisi kullanılacaktır.php<?php namespace App\Controllers; use Phalcon\Mvc\Controller; use Phalcon\Db\Adapter\Pdo\Mysql; // MySQL adaptörünü dahil edin use Phalcon\Db\Enum; // fetchAll için enum class IndexController extends Controller { public function indexAction() { return 'Hello ServBay!'; } // Kullanıcı ekleme örneği public function mysqlAddAction() { // Servis konteynerinden bağlantı alınabilir // Burada örnek olarak doğrudan bağlantı oluşturuluyor (gerçek uygulamada sıkça bağlantı oluşturmaktan kaçınınız) $connection = new Mysql([ 'host' => '127.0.0.1', 'username' => 'root', 'password' => 'password', // <-- Kendi veritabanı şifrenizi girin 'dbname' => 'servbay_phalcon_app', 'charset' => 'utf8mb4', ]); // Örnek kullanıcı ekle $success = $connection->insert( 'users', // tablo adı ['ServBay Demo User', 'demo@servbay.test'], // değerler ['name', 'email'] // kolonlar ); // Sonucu yazdır echo $success ? 'Kullanıcı başarıyla eklendi.' : 'Kullanıcı eklenemedi.'; } // Kullanıcıları sorgulama örneği public function mysqlAction() { // Veritabanına bağlan $connection = new Mysql([ 'host' => '127.0.0.1', 'username' => 'root', 'password' => 'password', // <-- Kendi veritabanı şifrenizi girin 'dbname' => 'servbay_phalcon_app', 'charset' => 'utf8mb4', ]); // Tüm kullanıcıları sorgula $users = $connection->fetchAll('SELECT * FROM users', Enum::FETCH_ASSOC); // Sonucu JSON olarak yazdır header('Content-Type: application/json'); echo json_encode($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
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
58Not: Gerçek uygulamada, veritabanı bağlantısı servis konteynerine tanımlanmalı ve dependency injection ile kullanılmalıdır.
Örnekleri test edin
- Tarayıcıda
https://servbay-phalcon-test.local/mysql-add
adresine gidin; "Kullanıcı başarıyla eklendi." mesajını görebilirsiniz. - Ardından
https://servbay-phalcon-test.local/mysql
adresini açın; JSON formatında kullanıcı listesini göreceksiniz.
- Tarayıcıda
NoSQL Veritabanı: Redis
ServBay'in Redis servisini Phalcon projesinde önbellek olarak nasıl kullanacağınızı gösterelim.
Redis Eklentisini Kurun
ServBay’in PHP paketlerinde genelde Redis eklentisi yüklüdür. Sadece ServBay’de kullandığınız PHP sürümüne Redis eklentisinin ekli ve aktif olduğundan emin olun.
Redis Bağlantısını Yapılandırın
app/config/config.php
dosyasına Redis bağlantı bilgilerini ekleyin. ServBay’in Redis servisi varsayılan olarak127.0.0.1:6379
’da çalışır.phpreturn new \Phalcon\Config([ // ... diğer ayarlar ... 'cache' => [ 'adapter' => 'Redis', 'host' => '127.0.0.1', 'port' => 6379, 'index' => 0, // Varsayılan Redis DB index: 0 'persistent' => false, 'auth' => null, // Redis şifresi varsa doldurun ], // ... diğer ayarlar ... ]);
1
2
3
4
5
6
7
8
9
10
11
12Örnek yönlendirme ekleyin
app/config/routes.php
dosyasına Redis cache için bir route ekleyin:php<?php use Phalcon\Mvc\Router; $router = new Router(false); $router->add('/', [ 'controller' => 'index', 'action' => 'index', ]); $router->add('/mysql-add', [ 'controller' => 'index', 'action' => 'mysqlAdd', ]); $router->add('/mysql', [ 'controller' => 'index', 'action' => 'mysql', ]); // Redis önbellek için yeni route $router->add( '/redis', [ 'controller' => 'index', 'action' => 'redis', ] ); $router->handle($_SERVER['REQUEST_URI']); return $router;
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
32Kontrolcüde Redis önbelleği kullanın
app/controllers/IndexController.php
dosyasına birredisAction
metodu ekleyin:php<?php namespace App\Controllers; use Phalcon\Mvc\Controller; use Phalcon\Db\Adapter\Pdo\Mysql; use Phalcon\Db\Enum; use Phalcon\Cache\Adapter\Redis; // Redis önbellek adaptörünü ekleyin use Phalcon\Storage\SerializerFactory; // Serileştirici fabrikasını ekleyin class IndexController extends Controller { public function indexAction() { return 'Hello ServBay!'; } public function mysqlAddAction() { $connection = new Mysql([/* ... */]); $success = $connection->insert(/* ... */); echo $success ? 'Kullanıcı başarıyla eklendi.' : 'Kullanıcı eklenemedi.'; } public function mysqlAction() { $connection = new Mysql([/* ... */]); $users = $connection->fetchAll('SELECT * FROM users', Enum::FETCH_ASSOC); header('Content-Type: application/json'); echo json_encode($users); } // Redis önbellek örneği public function redisAction() { // Serileştirici fabrikası oluşturun $serializerFactory = new SerializerFactory(); // Redis önbellek ayarları // Not: Bu ayarlar config.php içindeki 'cache' ile uyumlu olmalı $options = [ 'defaultSerializer' => 'Json', // Varsayılan olarak JSON ile veri saklanır 'lifetime' => 3600, // 1 saatlik önbellek ömrü 'host' => '127.0.0.1', 'port' => 6379, 'index' => 0, // 'auth' => 'redis_şifreniz', // Şifre varsa ekleyin ]; // Redis önbellek adaptörünü oluşturun $cache = new Redis($serializerFactory, $options); $cacheKey = 'my_servbay_redis_cache_key'; $cachedData = $cache->get($cacheKey); // Önbellekten veri çek if ($cachedData === null) { // Önbellekte veri yoksa echo "Önbellekte veri yok, kaynaktan alınıyor..."; $cachedData = 'Kaynaktan alındı: ServBay ile Redis’e Merhaba!'; $cache->set($cacheKey, $cachedData); // Veriyi önbelleğe yaz echo "Veri önbelleğe kaydedildi."; } else { // Ön bellekte veri varsa echo "Önbellekte veri bulundu: "; } // Önbellekteki veya kaynaktaki veriyi döndürün return $cachedData; } }
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
68
69Not: Pratikte, önbellek ayarını bir servis olarak kaydedip uygulama genelinde DI ile kullanmak daha doğrudur.
Örneği test edin
Tarayıcıdan
https://servbay-phalcon-test.local/redis
adresine gidin;- İlk seferde "Önbellekte veri yok, kaynaktan alınıyor... Veri önbelleğe kaydedildi." ve "Kaynaktan alındı: ServBay ile Redis’e Merhaba!" göreceksiniz.
- Önbellek ömrü süresince tekrar girerseniz "Önbellekte veri bulundu: " ve "Kaynaktan alındı: ServBay ile Redis’e Merhaba!" mesajı çıkacaktır; yani veri doğrudan Redis’ten alınır.
Sık Sorulan Sorular (SSS)
- S: Siteye erişirken 404 Not Found hatası alırsam ne yapmalıyım?
- C: ServBay’de “site kök dizini”nin Phalcon projesinin
public
klasörüne (/Applications/ServBay/www/servbay-phalcon-app/servbay-phalcon-app/public
) ayarlı olduğundan emin olun. Ayrıca ilgili web sunucusu (Caddy veya Nginx) ve yerel alan adı çözümlemesi çalışıyor olmalı.
- C: ServBay’de “site kök dizini”nin Phalcon projesinin
- S: Phalcon modülüyle ilgili hata alırsam (Class 'Phalcon\Mvc\Application' not found vs.)?
- C: Genelde PHP sürümünde Phalcon eklentisi etkin değil demektir. ServBay arayüzüne dönerek proje için kullandığınız PHP’de Phalcon eklentisinin aktif olduğundan ve PHP hizmetinin yeniden başlatıldığından emin olun. ServBay’de gömülü Phalcon modülünün nasıl etkinleştirileceği dokümana bakın.
- S: Veritabanı bağlantı hatası alırsam ne yapmalıyım?
- C:
app/config/config.php
dosyasındaki veritabanı bağlantı ayarlarını (sunucu adı, kullanıcı adı, parola, veritabanı adı) tekrar kontrol edin. ServBay’de ilgili veritabanı servisi açık olmalı. Ayrıca kullanıcı izinleri ve veritabanının gerçekten oluşturulmuş olması gerekir.
- C:
Sonuç
ServBay sayesinde Phalcon framework ile yüksek performanslı ve kolay yönetilebilir bir yerel geliştirme ortamı kurabilirsiniz. Bu rehberde temel proje iskeletinden web sunucusu ve veritabanı entegrasyonuna kadar ana adımları gördünüz. ServBay’in sunduğu entegre yazılım paketleri ve pratik arayüzü yerel geliştirme ortamı kurulumunu kolaylaştırır, size Phalcon ile web geliştirmeye odaklanmak için fazladan zaman tanır. Rehberimizin, ServBay ve Phalcon ile hızlı ve verimli bir web geliştirme süreci için yol gösterici olmasını umuyoruz!