Reaction Framework


ColdFusion web uygulamalarınızı geliştirirken bir çatı dahilinde geliştirdiğinizde uygulamanız genişledikçe onu daha kolay kontrol edebilir ve daha kolay bakım yapabilirsiniz. Fakat piyasadaki kaliteli ve deneyimli çatılar olarak Fusebox, Mach-II gibi frameworklerin (çatıların) öğrenilmesinin çok zor olduğunu ve uygulamanızın bu frameworklere çok bağımlı hale geldiğini farkedeceksiniz.

ColdFusion hali hazırda kolay bir dil olmasına karşın uygulamanızı geliştirmek için bir metodoloji ve framework önermemekte, bu boşluğu üçüncü parti frameworklere bırakmaktadır. Fusebox CFML dünyasından XML dünyasına doğru kaydığı için sürekli XML’lerle uygulamayı geliştirmek size itici gelebilir. Diğer Framework’lerde XML’de öğrenilmesi gereken bir çok özellik bulunmaktadır. Halbuki CFML zaten etiketlerden oluşan bir dildir, XML’lerle uygulamayı yönetip geliştireceğimize neden CFML’le yetinmiyoruz?

Reaction Framework diğer frameworklere göre çok daha kolay, basit ve hızlıdır. Kolaylıkla öğrenebilir ve hemen uygulamaya başlayabilirsiniz. Reaction Framework’ün yapısını şöyle özetleyebiliriz:

Konfigürasyon Dosyası

Reaction Framework’te uygulamanızda kullanacağınız parametre ve plugin ayarlarını belirleyebildiğiniz basit bir XML dosyası bulunur. Bu XML dosyasını istediğiniz yere koyabilirsiniz ve isterseniz boş halde de tutabilir, kullanmayabilirsiniz de… Ancak bu XML dosyasının uygulamanızın genelinde kullandığınız parametreleri kaydetmek için kullanmanızı öneririz, böylelikle uygulamanızın parametrelerinde değişiklik yapmanız gerektiğinde kodlar içerisinde bu değişiklikleri yapmak yerine bir yerden sadece Reaction Konfigürasyon dosyasından yapmanız yeterli olacaktır. Örnek bir XML konfigürasyon dosyasının içeriği şöyledir:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<settings>
<setting name="datasource" value="cfdatasourcename" />
</settings>

 

<plugins>
<plugin name="TracePlugin" component="Reaction.Plugins.TracePlugin">
<parameters>
<parameter name="parameterName" value="parameterValue" />
</parameters>
</plugin>
</plugins>
</configuration>

Reaction Framework Initialization

Reaction Framework’ü başlatmak için Application.cfm veya Application.cfc (önerilir) içerisinde aşağıdaki iki satırlık kodu kullanmak gerekir:

<cfset application.reaction = createObject(“component”, “Reaction.Reaction”).init(this) />
<cfset application.reaction.configure(“/ReactionFramework/reaction.config”, “auto”) />

Reaction Controllers

Reaction Framework ile uygulama geliştirirken ColdFusion template’lerinin (sayfalarının) gerekli olanlarıyla bir CFC ilişkilendiririz. İlişkilendirilen bu CFC’ye Controller adını veriyoruz. Bu ilişkilendirme işlemi ile sayfamızda gerçekleşen olayları controller CFC’imizde işleyebiliyoruz. İlişkilendirme için sayfamızın en üst satırını aşağıdaki örnekteki gibi <cf_controller> etiketini yerleştirmemiz yeterli.

<cf_controller component="sample_controller" eventList="Button1Click,sampleEvent" />

Böylece sample_controller.cfc dosyasında onStart, Button1Click, sampleEvent, onPreRender, onEnd gibi olayları işleyecek metodları yerleştirebiliriz.

Ek olarak sayfamızın içerisinde JavaScript ile ColdFusion olayları oluşturmak için reaction.js script dosyasını da eklemiş olmamız gerekir:

<script type="text/javascript" src="/CFIDE/scripts/reaction.js"></script>

Böylece sayfamızdaki öğeler tıklandığında ve değiştirildiğinde olaylar oluşturup bu olayları controller CFC’imizde işleyebiliriz. Bir butona tıklandığında Button1Click olayının çalıştırılmasını istediğimizi şu şekilde belirtiriz:

<input type="submit" name="button1" value="click me" onclick="handleEvent('Button1Click')" />

Olayları işlediğimiz sample_controller.cfc dosyasının içeriği ise şöyle:

<cfcomponent extends="Reaction.Controller">
<cffunction name="onStart" access="public">
<cfdump var="#arguments#" label="onStart" />
<cfdump var="#settings.get('datasource')#" />
<cfset view.message="This sample message can be read by all events" />
</cffunction>

<cffunction name="button1click" access="public">
<cfoutput><h1>button 1 click </h1></cfoutput>
<cfdump var="#arguments#" label="Button1Click" />
</cffunction>

 

<cffunction name="sampleEvent" access="public">
<cfoutput><h1>sample event</h1></cfoutput>
<cfdump var="#arguments#" label="SampleEvent" />
</cffunction>
</cfcomponent>

Reaction Framework’te özetle olaylarla çalışırız her cfm’in olayları işleyecek bir controller.cfc’isi bulunur. CFML kodlarımızı CFC’ler içerisinde organize ederiz, böylece cfm dosyalar sadece arabirim ve görsellikle ilgili kodları içerir.

Reklam

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s