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.

  1. Henüz yorum yapılmamış.
  1. Henüz geridönüş yok.

Yorum yapın

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Değiştir )

Twitter picture

You are commenting using your Twitter account. Log Out / Değiştir )

Facebook photo

You are commenting using your Facebook account. Log Out / Değiştir )

Connecting to %s

Takip Et

Get every new post delivered to your Inbox.