Flex ve symfony – 1 0
Bir kaç gün önce kurulumunu yapmış olduğum symfony üzerinde neler yapabildiğimin sınırlarında dolaşmaya devam ediyorum. En son çalışmam “nasıl RIA yaparım?” üzerine oldu. RIA (Rich Internet Application) bildiğiniz gibi masaüstü uygulamalarına benzer özellikler içeren web uygulamaları. Adobe Flex, Microsoft Silverlight ve JavaFx en bilinen platformlar arasında yer alıyor. Ücretsiz olarak sunduğu SDK’sı olduğunu bildiğimden dolayı seçimim hemen Flex’ten yana kullandım. Ve klasik olarak olan oldu… Basit bir “hello world” uygulama için bir sürü sıkıntı yaşadım. Tabi büyük bir kısmı cehaletten kaynaklı… Neyse başlayalım…
1. BÖLÜM: Symfony kısmı
1- Yapacağımız uygulama iki parçadan oluşmakta. Öncelikle symfony tarafındaki kısmı yapacağız. Yeni bir proje dizini oluşturup uygulamanın dizin yapısını ve ardından da önyüz yapısını oluşturalım.
-
md flextest symfony generate:project flextest symfony generate:app frontend
2- Flex ile symfony arasındaki iletişimimizi sağlayacak bir yapıya ihtiyacımız olacak. Bunu yapabilmek için sfAMFPlugin adında bir eklenti kullanacağız. Olayın mantığı kısaca şu; Flash uygulamaları birlikte çalıştıkları uzak servislerle veri alışverişi yaparken AMF (Action Message Format) adı verilen bir format kullanmakta. Bu eklenti sayesinde Flex tarafından gönderilen AMF isteklerini kontrol edeceğiz. Uygulamanın içine bu eklentiyi kuralım. Ekranda bir anda kayan satırlar görürseniz şaşırmayın
-
symfony plugin:install sfAmfPlugin
-
symfony cc

3-Şimdi bir tane AMF servisi oluşturmamız gerekiyor
-
symfony amf:create-service –package=de.shiftup.flextest HelloWorld symfony cc
HelloWorldService adında bir servisimiz oldu. İlgili sınıfın içine basit bir fonksiyon yazalım. Sınıfın php dosyasının yolu ben de “D:\wamp\www\flextest\lib\services\de\shiftup\ flextest\HelloWorldService.class.php” şeklinde. Dosyanın içindeki fonksiyonu aşağıdaki şekilde değiştirelim
-
class HelloWorldService extends sfAmfService {
-
public function sayHello($who) {
-
return "Hello ".$who;
-
}
-
}
4-Şimdide URL üzerinde çağıracağımız bir modül oluşturmamız gerekiyor
-
symfony generate:module frontend amfgateway
Modülün action’larının olduğu dizindeki php dosyasını açalım. Bendeki yolu “D:\wamp\www\flextest\apps\frontend\modules\ amfgateway\actions\actions.class.php” Bu noktada executeIndex fonksiyonunu aşağıdaki şekilde değiştirelim.
-
public function executeIndex(sfWebRequest $request) {
-
$this->setLayout(false);
-
$gateway = new sfAmfGateway();
-
$response = sfContext::GetInstance()->getResponse();
-
$response->setContent($gateway->service());
-
return sfView::NONE;
-
}
5-Bu tarafta herşey hazır gibi gözüküyor, hemen test edelim. Test için amfbrowser modülünü aktif olması gerekli. Uygulamanın settings ayarlarından yapacağız bu işlemi. Bendeki yolu “D:\wamp\www\flextest\apps\frontend\config\settings.yml”. Dosyayı açtıktan sonra dev: satırı altında .settings: satırının altına aşağıdaki satırı ekleyelim.
-
enabled_modules: [default, amfbrowser]
Şimdi browser’da “http://localhost/flextest/web/frontend_dev.php/amfbrowser” yazalım. Aşağıdakine benzer bir ekran görmeniz lazım. Dilerseniz “sayHello” servisini burdan test edebilirsiniz.
6-Servisin çalışıyor olması herşeyin düzgün gittiği anlamına gelmiyor malesef. Biz Flex kısmında bu servise gateway üzerinden bağlanacağız. Bu yüzden diğer çalışması gereken URL “http://localhost/flextest/web/frontend_dev.php/amfgateway”. Ben çalıştırdığımda aşağıdaki gibi bir ekran karşıma çıktı.
Biraz garipsesem de okuduğum dökümanda farklı bir bilgi verilmediğinden Flex kısmını yapmaya devam ettim. Ancak hislerim beni yanıltmadı. Yani akıl var mantık var. “Login required” diyor. Bir yetki sorunumuz var. Düzeltmek için yine settings kısmında bir ayar yapmamız lazım. “security.yml“ dosyasınında değişiklik yapacağız. Bendeki yolu “D:\wamp\www\flextest\apps\frontend\config\security.yml“. Dosyayı açtığımızda “default: is_secure: false” satırlarını göreceğiz. Aşağıdaki şekilde değiştirelim,
-
all:
-
is_secure: false
Tekrar URL’ye gidelim…

Ooo, hata verdi. Ama bu iyi haber
hata vermesi lazım zaten… Buradaki işimiz bitti. Bu arada biraz önceki login sorununu çözebilmek için bayağı bir uğraşmam gerekti… Neyse şimdi Flex kısmında sıra.
Devam edecek…
Etiketler: adobe, adobe flex, flex, Flex 4, Flex Development, hello world, internet application, ria, symfony





Yorum RSS Aboneliği
Bu yazıya hiç yorum yapılmamış