ServBay'de Yüksek Performanslı Phalcon PHP Framework Modülünü Etkinleştirme
ServBay, geliştiriciler için tasarlanmış güçlü bir yerel Web geliştirme ortamıdır ve birçok popüler teknoloji yığınını entegre eder. PHP geliştiricileri için ServBay, yüksek performanslı Phalcon framework modülünü önceden kurulu olarak sunar ve bu modülü etkinleştirmek son derece kolaydır. Hız ve verimliliğiyle öne çıkan Phalcon, geliştiricilerin verimli Web uygulamaları oluşturmasına yardımcı olan modüler bir PHP frameworküdür.
Phalcon Framework’e Genel Bakış
Phalcon, açık kaynaklı ve tam özellikli bir PHP frameworküdür ve olağanüstü hızı ile düşük kaynak tüketimiyle bilinir. Çoğu framework yalnızca PHP ile yazılırken, Phalcon C diliyle geliştirilmiş ve PHP uzantısı olarak yüklenir. Bu kendine özgü mimari Phalcon’a önemli bir performans avantajı kazandırır ve aynı zamanda kapsamlı bir fonksiyon seti sunar.
Temel Özellikler
- Yüksek performans: Phalcon, C uzantısı olarak doğrudan çalıştığı için, saf PHP ile yazılmış frameworklerden çok daha hızlıdır ve çok daha az bellek ve CPU kaynağı kullanır.
- Düşük sistem yükü: Phalcon’un optimize edilmiş tasarımı, yoğun eşzamanlı istekleri işlerken bile yüksek verimlilik sağlar.
- Zengin özellik seti: Phalcon, eksiksiz bir MVC (Model-View-Controller) mimarisi, güçlü bir ORM (nesne-ilişkisel eşleme), şablon motoru, esnek yönlendirme sistemi, önbellekleme ve kuyruk servisleri gibi birçok gelişmiş bileşen içerir. Farklı ihtiyaçlara yönelik karmaşık Web uygulamaları geliştirmek mümkündür.
- Kullanım kolaylığı: Çekirdek C ile yazılmış olsa da, geliştiriciler uygulamalarında alışık oldukları PHP dilini kullanır. Framework, kullanıcı dostu bir API'ye ve detaylı dökümantasyona sahiptir.
- Modüler yapı: Phalcon’un tüm bileşenleri yüksek oranda ayrıştırılmış ve modülerdir; geliştiriciler proje gereksinimlerine göre diledikleri bileşenleri kullanıp değiştirebilirler.
ServBay ile Birlikte Gelen Phalcon Modül Sürümleri
ServBay, birden fazla popüler PHP sürümüne destek verir ve her biriyle uyumlu Phalcon modüllerini önceden entegre eder. ServBay, desteklediği PHP sürümlerini ve önceden yüklenmiş yazılımları sürekli güncelleyerek en güncel teknolojilere uyum sağlar. Entegre edilen Phalcon sürümleri genellikle ilgili PHP sürümüyle uyumludur. Bilgiye yazılım paketleri yönetim arayüzünden ulaşabilirsiniz. Aşağıda yaygın PHP sürümlerine karşılık gelen Phalcon sürümleri listelenmiştir (ServBay, daha fazla ya da güncel sürümü de destekleyebilir):
- PHP 5.6, 7.0, 7.1: Phalcon 3.4.5
- PHP 7.2, 7.3, 7.4: Phalcon 4.1.2
- PHP 8.0, 8.1, 8.2, 8.3: Phalcon 5.7.0
- PHP 8.4, 8.5-dev: Phalcon 5.8.0
Phalcon Modülü Nasıl Etkinleştirilir?
ServBay'de Phalcon modülünü etkinleştirmek oldukça sezgisel ve kolaydır. Varsayılan olarak, ortamın sade kalması için Phalcon devre dışı bırakılmış olabilir. Etkinleştirmek için ServBay’in grafik arayüzünden birkaç basit adım yeterlidir.
Önerilen Yöntem: ServBay Grafik Arayüzü ile Etkinleştirme
En hızlı ve kolay yöntem budur:
- ServBay uygulamasını açın.
- Sol menüde Languages (Diller) seçeneğine tıklayın.
- Liste arasından Phalcon'u etkinleştirmek istediğiniz PHP sürümünü seçin (örneğin,
PHP 8.3
veyaPHP 8.4
). - PHP sürümünün sağındaki Extensions (Uzantılar) butonuna tıklayın.
- Açılan uzantı listesinde Phalcon modülünü bulun.
- Solundaki anahtarı açık konuma getirin.
- Ekranın altındaki Save (Kaydet) düğmesine tıklayın.
- ServBay, yapılan değişikliklerin etkili olabilmesi için ilgili PHP servisini yeniden başlatmanızı isteyecektir. Onaylayarak devam edin.
Yeniden başlatma sonrası seçtiğiniz PHP sürümünde Phalcon modülü başarıyla yüklenecektir.
El ile Yapılandırma Dosyası Düzenleyerek Etkinleştirme (Gelişmiş Kullanıcılar için)
Otomasyon veya ileri düzey hata ayıklama amacıyla, Phalcon modülünü PHP yapılandırma dosyasını düzenleyerek de etkinleştirebilirsiniz.
Adım 1: Yapılandırma Dosyasını Bulun
İlgili PHP sürümüne ait conf.d
dizinini bulun; bu dizinde PHP uzantılarının yapılandırma dosyaları bulunur. Örneğin, PHP 8.3 için Phalcon’u etkinleştirmek üzere dosya yolu genellikle şöyledir:
/Applications/ServBay/etc/php/8.3/conf.d/phalcon.ini
Bir metin düzenleyici ile bu dosyayı açın.
Adım 2: Phalcon Yapılandırmasını Düzenleyin
Aşağıdakilere benzer satırları bulun ve extension = phalcon.so
ifadesinin başındaki noktalı virgülü (;
) kaldırarak ilgili satırı aktif hale getirin:
[Phalcon]
; Uncomment the following line to enable Phalcon
extension = phalcon.so
2
3
Düzenlendikten sonra şöyle görünecek:
[Phalcon]
extension = phalcon.so
2
Adım 3: PSR Modülünü Etkinleştirme (Yalnızca PHP 7.2 – PHP 7.4 İçin)
Not: Eğer Grafik arayüzden etkinleştirdiyseniz bu adımı atlayın.
PHP 7.2 – 7.4 sürümleri için Phalcon PSR (PHP Standards Recommendations) uzantısına bağımlıdır. ServBay, PSR uzantısını zaten önceden yüklemiştir; sadece etkinleştirmeniz gerekir. phalcon.ini
dosyasında ya da ilgili psr.ini
dosyasında aşağıdakilerin başındaki noktalı virgülü kaldırdığınızdan emin olun:
; Uncomment both Psr & Phalcon to enable Phalcon
[Psr]
extension = psr.so
[Phalcon]
extension = phalcon.so
2
3
4
5
6
Adım 4: PHP Servisini Yeniden Başlatın
İster grafik arayüz, ister yapılandırma dosyasını düzenleyerek değişiklik yapın; PHP uzantı ayarları aktif olması için mutlaka ilgili PHP servisini yeniden başlatmalısınız.
ServBay uygulama ana ekranında veya Packages (Paketler) bölümünde, yapılandırma değiştirdiğiniz PHP sürümünü seçip yanındaki yeniden başlat (dönen ok simgesi) butonuna tıklayabilirsiniz.
Phalcon Modülünün Başarılı Bir Şekilde Yüklendiğini Doğrulama
Phalcon’un yüklendiğinden emin olmanın en kolay yolu, PHP çalışma zamanındaki phpinfo()
çıktısına bakmaktır.
- ServBay’da yapılandırdığınız sitenin kök dizinine
phpinfo.php
adında bir dosya oluşturun. Örneğin, sitenizin kökü/Applications/ServBay/www/servbay.demo
ise bu dizine dosyayı oluşturun. - İçine şu kodu ekleyin:php
<?php phpinfo(); ?>
1
2
3 - Tarayıcıdan sitenizin ilgili URL’ine gidin (örneğin,
https://servbay.demo/phpinfo.php
). - Sayfada "Phalcon" başlığı veya bilgilerini arayın. Sürüm numarası ve yapılandırma bilgilerinin görünmesi, Phalcon modülünün başarıyla yüklendiğini gösterir.
Görsel: phpinfo çıktısında Phalcon bilgilerini bulma
Kullanım Örneği
Phalcon modülünü etkinleştirdikten sonra, Phalcon framework ile Web uygulamaları geliştirmeye başlayabilirsiniz. Aşağıda, basit bir Phalcon uygulamasının nasıl oluşturulacağı ve ServBay üzerinde nasıl çalıştırılacağı gösterilmektedir.
Varsayalım ki projeyi /Applications/ServBay/www/phalcon-demo
klasöründe oluşturacaksınız.
Adım 1: Proje Dizinini Oluşturun
Phalcon’un önerdiği dizin yapısına göre aşağıdaki dosya ve klasörleri oluşturun:
/Applications/ServBay/www/phalcon-demo/
├── app/
│ ├── controllers/
│ │ └── IndexController.php
│ └── views/
│ └── index/
│ └── index.phtml
└── public/
└── index.php
2
3
4
5
6
7
8
9
Adım 2: ServBay Site Yapılandırmasını Oluşturun
ServBay’da yeni bir Website (Web Sitesi) oluşturun; alan adını phalcon-demo.servbay.demo
yapın ve site kök klasörünü public
dizinine (/Applications/ServBay/www/phalcon-demo/public
) yönlendirin. Sitenizin Phalcon modülünü etkinleştirdiğiniz PHP sürümünü kullandığından emin olun.
Adım 3: Örnek Kodları Oluşturun
Ana Kontrolcü:
public/index.php
Uygulamanın giriş noktasıdır.php<?php use Phalcon\Autoload\Loader; use Phalcon\Di\FactoryDefault; use Phalcon\Mvc\View; use Phalcon\Mvc\Url; use Phalcon\Mvc\Application; // Proje kök ve uygulama dizini sabitlerini tanımlayın define('BASE_PATH', dirname(__DIR__)); // /Applications/ServBay/www/phalcon-demo'ya işaret eder define('APP_PATH', BASE_PATH . '/app'); // /Applications/ServBay/www/phalcon-demo/app'ya işaret eder // Kontrolcü ve modellerin otomatik yüklenmesini sağlamak için yükleyiciyi kaydedin $loader = new Loader(); $loader->setDirectories( [ APP_PATH . '/controllers/', APP_PATH . '/models/', // Eğer model varsa, model dizinini de ekleyin ] ); $loader->register(); // Bağımlılık enjeksiyon kabını (DI) oluşturun $container = new FactoryDefault(); // Görüntü servisini DI konteynerine kaydedin $container->set( 'view', function () { $view = new View(); $view->setViewsDir(APP_PATH . '/views/'); // Görünümler dizinini ayarlayın return $view; } ); // URL servisini DI konteynerine kaydedin $container->set( 'url', function () { $url = new Url(); $url->setBaseUri('/'); // Temel URL'yi ayarlayın return $url; } ); // Phalcon uygulama örneğini oluşturun $application = new Application($container); try { // İsteği işleyip yanıt gönderin $response = $application->handle( $_SERVER["REQUEST_URI"] ); $response->send(); } catch (\Exception $e) { // Hataları yakalayın ve mesajı gösterin echo 'Exception: ', $e->getMessage(); } ?>
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
62Kontrolcü:
app/controllers/IndexController.php
Ana sayfa isteklerini işleyen kontrolcü.php<?php use Phalcon\Mvc\Controller; use Phalcon\Support\Version; // Phalcon sürümünü almak için Version sınıfını ekleyin class IndexController extends Controller { // Varsayılan eylem (Action) public function indexAction() { // Geçerli Phalcon sürüm bilgisini al $phalconVersion = new Version(); $versionString = $phalconVersion->get(); // Sürümü görünümde kullanmak üzere aktar $this->view->phalconVersion = $versionString; // app/views/index/index.phtml dosyasını render et } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20Görünüm Dosyası:
app/views/index/index.phtml
Hoşgeldiniz mesajı ve Phalcon sürümünü gösterir.html<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Hello ServBay with Phalcon</title> <style> body { font-family: sans-serif; margin: 40px; text-align: center; } h1 { color: #333; } p { color: #666; } </style> </head> <body> <h1>Hello ServBay!</h1> <p>ServBay üzerinde Phalcon uygulamasını başarıyla çalıştırdınız.</p> <p>Geçerli Phalcon sürümü: **<?= $phalconVersion ?>**</p> </body> </html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Adım 4: Uygulamayı Ziyaret Edin
ServBay’de Nginx/Caddy ve seçtiğiniz PHP sürümünün çalıştığından emin olun. Tarayıcıdan belirlediğiniz alan adına (https://phalcon-demo.servbay.demo
) gidin. "Hello ServBay!" mesajı ve Phalcon sürüm numarasının bulunduğu bir sayfa görmelisiniz.
Görsel: Başarıyla çalışan Phalcon örnek uygulama
Dikkat Edilmesi Gerekenler
- Kullandığınız PHP sürümünün Phalcon projenizle uyumlu olduğundan emin olun.
- Yapılandırma dosyalarını el ile düzenledikten sonra mutlaka ilgili PHP servisini yeniden başlatın.
- Sorun yaşarsanız ilk önce PHP hata günlüklerini ve Web sunucusu (Nginx/Caddy) hata günlüklerini kontrol edin. Bunlara genellikle
/Applications/ServBay/var/log/
dizininden ulaşılır.
Sıkça Sorulan Sorular (SSS)
S1: Adımları uyguladım fakat phpinfo()
içinde Phalcon gözükmüyor. Ne yapmalıyım?
C1: Şunları kontrol edin:
- El ile yapılandırma yaptıysanız, doğru PHP sürümünün dosyasını düzenlediğinizden emin olun.
extension = phalcon.so
ifadesinin başında noktalı virgül (;
) olmadığından emin olun.- İlgili PHP servisini mutlaka yeniden başlatın.
- Web sitenizin yapılandırmasının, Phalcon etkin PHP sürümünü kullandığından emin olun.
- Gerekirse ServBay'in PHP hata günlüklerinde uzantı yükleme hatalarını kontrol edin.
S2: Phalcon uygulamamda Class 'Phalcon\...' not found
şeklinde hata alıyorum, nedeni ne olabilir?
C2: Bu genellikle Phalcon modülünün, kullanılan PHP ortamına yüklü olmadığı anlamına gelir. Belgedeki etkinleştirme/doğrulama adımlarını tekrar uygulayarak modülün yüklendiğinden ve phpinfo()
ile Phalcon sürüm bilgisine ulaştığınızdan emin olun. Modül yüklendiyse, uygulama kodunuzda isim alanı (namespace) hatası veya otomatik yükleme (autoloader) yapılandırması olup olmadığını kontrol edin.
S3: Phalcon başka bağımlılık ister mi?
C3: PHP 7.2 – 7.4 için Phalcon, PSR uzantısına bağımlıdır. ServBay, PSR’yi önceden yükler; phalcon.ini
’de hem extension = psr.so
hem de extension = phalcon.so
satırlarının aktif olduğuna emin olun. PHP 8.0 ve sonrası için (Phalcon 5.x), genellikle harici PSR uzantısı gerekmez; gerekli standartlar framework içine dahil edilmiştir.
Sonuç
ServBay, Phalcon framework'ün yerel geliştirme ortamına kurulmasını olağanüstü derecede kolaylaştırır. Grafik arayüz veya basit yapılandırma düzenlemesi sayesinde, farklı PHP sürümleri için Phalcon modülünü rahatlıkla etkinleştirebilirsiniz. ServBay'in diğer modern Web teknolojileriyle kapsamlı uyumu sayesinde, geliştiriciler işlevsel ve yüksek performanslı yerel geliştirme ortamları oluşturabilir. Phalcon’un hız avantajlarından yararlanarak güncel, hızlı ve minimum kaynak tüketen Web uygulamaları geliştirebilirsiniz.