Phalcon Framework Dersleri – 1 / Projeyi Ayağa Kaldırmak

Merhaba arkadaşlar, artık phalcon derslerine bir yerden başlamaya karar verdim :). Phalcon’u güzelce kurduk php.ini’den aktif ettik iyi herşey güzel 🙂 Peki ya sonra ? sonrası malum. Projemizi oluşturmaya başlıyoruz. Vira Bismillah !

phalcon php

Dosya Yapısı

Phalcon uygulama geliştirmek için özel bir dosya yapısını zorunlu kılmaz.Gevşek bağlanmış (Loosely Coupled) olması nedeni ile en rahat bir dosya yapısıyla muazzam uygulamalarınızla Phalcon’u uygulayabilirsiniz.

Benim tercih ettiğim ve Phalcon’un da önerdiği dosya yapısı :

Küçük bir not; Uygulamalarınızda Phalcon ile alakalı library klasörüne ihtiyacınız bulunmamakta ! Zira Framework hafıza kullanmanız için zaten hazır.

Şekil URL’ler

Url’lerimizi şekillendirmek SEO için de kullanıcıların daha rahat hatırlaması içinde büyük kolaylık sağlar. Phalcon en popüler web sunucuları tarafından sağlanan rewrite modüllerini destekler.  Uygulamanızda kullanıcı dostu url oluşturmak gibi bir gereklilik bulunmamaktadır yine rahat bir şekilde geliştirme yapabilirsiniz.

Bu örnekte Apache için rewrite modülünü kullanacağız. /tutorial/ klasörü içerisinde .htaccess dosyasını oluşturalım ve aşağıda vermiş olduğum rewrite kurallarını belirtelim: 

Böylelikle app dosyası içerisindeki klasörlerimizi güvene almış bulunuyoruz. Gelebilecek istekler public klasörüne yönlendirilecek.

Şimdi de public klasörü altında .htaccess dosyası oluşturuyoruz ve rewrite kurallarımızı belirtiyoruz. Eğer gelen istekte public klasörü altında dizin yada dosya var mı ? yoksa :

Bootstrap

Boostrap dosyası ilk oluştaracağımız dosyadır. Boostrap dosyası oldukça önemli zira uygulamanızı bu dosya üzerinden kontrol edip tüm istekler bu dosyadan ilgili yerlere aktarılır.

tutorial/public/ klasörü içerisinde index.php dosyasını oluşturun. Temel olarak Bootstrap dosyanız şu şekilde olmalı;

Autoloaders

Bootstrap içerisinde ilk bölümde autoloader’i kayıt ediyoruz.  Bu uygulama içerisinde sınıfları controller ve model olarak otomatik yükleme işlevini görecektir.  Uygulamanın esnekliğini arttırmak için daha fazla dizini kayıt edip class’ları autoload edebiliriz. Örneğimizde autoload için Phalcon\Loader bileşenini kullandık.

 

Dependency Management

Dependency Injection Tasarım Deseni Phalcon ile çalışırken anlaşılması çok önemli olan bir konudur.Bu kulağa karmaşık gelebilir aslında oldukça çok basit ve pratiktir.

phalcon framework

 

Resimde ne görüyorsunuz diye bir soru sorsam, süpheli süpheli bakmaya mı başlarsınız, yoksa USB anahtarlıklar ve iki anahtar mı dersiniz bilmiyorum. Ama sistematik bir görüntü var aslında resimde. Canı isteyen sistemdeki anahtarlıkları halkadan boşandırıp değiştirebilir. Çünkü halka esnek bir yapıda yani birbirine sabitlenmemiş. Aynı şekilde isteyen, ipliğin ucundaki USB aygıtlarını da istediği renkle değiştirebilir. Çünkü iplikte basit bir düğüm, dolayısıyla anahtarlık ve anahtarlar arasında gevşek bir bağ mevcut. Aynı şekilde USB aygıtlarının kapakları da birbirine uyumlu olduklarından istenen renkte anahtarlık veya kapak seçilebilir ve ikili oluşturulabilir. Bu durum sistemin esnek olduğunu ve tüm bileşenler arasında gevşek bir bağlantı söz konusu olduğunu göstermekdir.

Yazılım tasarım desenlerinde de sıklıkla karşılaştığım “gevşek bağlılık” (Loosely Coupled) deyiminin de ifade etmek istediği şey yukarıdaki şekilde anlatıldığı gibidir. Nesnelerin birbirine uyumlu ve birbirini etkilemeyecek şeklide olmasıdır.

Yazılım tasarım desenlerinden biri olan, Dependency Injection (Bağımlılıkların Dışarıdan Enjekte Edilmesi) deseni de bileşenlerin(components) birbirine olan sıkı bağlarının gevşetilmesini ve yazılımın test edilebilir bir hale getirilmesini amaçlamaktadır. (Teşekkürler)

 

Controller Oluşturmak

Varsayılan olarak Phalcon’un arayacağı controller ismi Index’tir. Uygulamanın başlangıç noktası burasıdır. Index Controllerı oluşturalım (tutorial/app/controllers/IndexController.php)