Mesajlar etiketlendi code gear

Code Gear Delphi For PHP 2.0 – 001

Delphi 1.0 ile başladığı macerasına .NET versiyonlarından sonra for PHP versiyonunu da dahil ederek web tasarımcıları için yeni bir yol haritası gösterdi.  Temelde Windows platformları için uygulama geliştiren ve başarılı olan Türk delphi yazılımcıları, aynı başarıyı web tabanlı yazılım geliştirme konusunda göstermekte zorlanıyorlar.  Bunun en temel nedeni delphi’nin web tabanlı örneklerinin yok sayılacak kadar az olması veya iyi anlaşılamaması.

Bu yazı dizisinde dilim döndüğünce delphi’nin bu yeni sürümü hakkında bilgiler ve örnekler vermeye çalışacağım. Vereceğim bilgi ve örnekler, yeni bir  web tabanlı yazılım/tasarım geliştirme aracı olan Delphi for php konusuna giriş niteliğinde olacaktır. Zaman buldukça yazacağım bu bilgiler henüz benimde tam olarak hakim olmadığım yeni bir yapıyı anlatacağından, hem uzun olacak,  hemde zaman zaman yetersiz kalabilecektir. Bu nedenle vereceğim bu bilgi ve örneklerdeki olası eksiklik ve hatalarımın konuya hakim diğer yazılımcılar tarafından giderileceğini ümit ediyorum.

A. GİRİŞ

PHP, Web tabanlı tasarım ve uygulamalarda sayfalara dinamiklik katmak, veri kümeleriyle çalışmak için kullanılan perl,cgi, isapi,asp, asp.net gibi web tabanlı diller arasında özel bir yeri olan bir web programlama dildir. PHP dilinin geçmişini ve gelişim sürecini, spesifik özelliklerini internet üzerinde küçük bir araştırmayla öğrenebilirsiniz.

PHP tıpkı delphi gibi nesne yönelimli bir dildir. Bu nedenle eğer nesne, sınıf, olay, yöntem, özellik gibi kavramlara uzaksanız önce bu kavramları öğrenmelisiniz. Çünkü delphi for php, PHP dilinin bu mimarisi üzerine geliştirilmiştir. Yani her şey bir sınıf ve bu sınıfın nesneleri, olayları, özellikleri üzerine kurgulanmıştır.

B. KURULUM

Delphi for php 45 MB olan trial versiyonunu http://www.codegear.com/products/delphi/php indirip kurabilirsiniz. Kurulum sonrasında delphi ihtiyaç duyduğu tüm dosya ve uygulamaları yüklemektedir. Bunlara apache web server, php 5.2 ve MySQL veri tabanının dinamik bağlantılı kütüphanesi (DLL) dahildir. MySQL veri tabanını ayrıca yüklemelisiniz.
C. Delphi For PHP  IDE, VCL ve Kaynak Dosya Sistemi

Delphi yazılımcıları delphi’nin IDE ve  kaynak dosya sistemini hatırlayacaklardır.  .NET platformuna geçişle birlikte yeni bir IDE’ye kavuşan delphi, for php içinde aynı ara yüzü kullanmaktadır.

—————————————————————————————

Delphi For PHP, tıpkı VCL32 bileşen kütüphanesine dayanan uygulamalarda olduğu gibi bu sürüm içinde özel olarak yazılmış bir VCL bileşen kütüphanesi içermektedir. Delphi yazılımcısı olmayanlara VCL bileşen kütüphanesinin delphi’nin görsel bileşen kütüphanesi olduğunu, web tabanlı input bildirimiyle başlayan form elemanlarının ve daha fazlasının görsel ve kod olarak delphi IDE’ye dahil edildiğini belirtmek isterim.

VCL bileşenlerinin olayları ve özellikleri Object Inspector aracılığıyla ayarlanabilmektedir.

*.dpr, *.dfm, *.unit uzantılı kaynak dosyalarının yerini *.phprj, *.xml.php, *.php uzantılı kaynak dosyaları almıştır. İşlevsel olarak aynıdırlar. Fakat içeriklerinin farklı olduğunu tahmin edebilirsiniz.

*.phprj dosyaları projeye dahil edilen php unit deklarasyonlarını tutmaktadır. Daha önceki delphi versiyonlarında dpr uzantılı proje dosyasının yerini alan *.phprj uzantılı proje dosyasının örnek içeriği aşağıdaki gibidir.

[PHPProject]
Version=2
[Files]
Item1=unit1.php

*.php uzantılı dosyalar ise code-behind içeriğini tutmaktadır. Önceki delphi versiyonlarında *.pas uzantılı dosyaların yerini alan örnek *.php dosyasının içeriğide aşağıdaki gibidir.

<?php
require_once(“vcl/vcl.inc.php”);
//Includes
use_unit(“forms.inc.php”);
use_unit(“extctrls.inc.php”);
use_unit(“stdctrls.inc.php”);

//Class definition
class Unit1 extends Page
{
public $Label1 = null;
}

global $application;

global $Unit1;

//Creates the form
$Unit1=new Unit1($application);

//Read from resource file
$Unit1->loadResource(__FILE__);

//Shows the form
$Unit1->show();

?>

Tasarım bilgilerinin saklandığı *.xml.php uzantılı XML yapısındaki dosyada önceki delphi versiyonlarının *.dfm uzantılı halidir. Görsel olarak DESIGNTIME yaptığımız tüm tasarımlar, kullandığımız bileşenler ve bunlarla ilgili tüm özellikler bu dosyada saklanmaktadır. Aşağıda örnek bir *.xml.php uzantılı tasarım kipi bilgilerinin tutulduğu dosyanın yapısı görülmektedir…

<?php
<object class=”Unit1″ name=”Unit1″ baseclass=”page”>
<property name=”Background”></property>
<property name=”Caption”>Unit1</property>
<property name=”DocType”>dtNone</property>
<property name=”Font”>
<property name=”Align”>taNone</property>
<property name=”Case”></property>
<property name=”Color”></property>
<property name=”Family”>Verdana</property>
<property name=”LineHeight”></property>
<property name=”Size”>10px</property>
<property name=”Style”></property>
<property name=”Variant”></property>
<property name=”Weight”></property>
</property>
<property name=”Height”>600</property>
<property name=”IsMaster”>0</property>
<property name=”Layout”>
<property name=”Cols”>5</property>
<property name=”Rows”>5</property>
<property name=”Type”>ABS_XY_LAYOUT</property>
<property name=”UsePixelTrans”>1</property>
</property>
<property name=”Name”>Unit1</property>
<property name=”Width”>800</property>
<object class=”Label” name=”Label1″ >
<property name=”Autosize”>1</property>
<property name=”Caption”><![CDATA[Bu Bir VCL Label Bile&thorn;enidir]]></property>
<property name=”Color”>#FFFF80</property>
<property name=”Font”>
<property name=”Align”>taNone</property>
<property name=”Case”></property>
<property name=”Color”>#FFFFFF</property>
<property name=”Family”>Verdana</property>
<property name=”LineHeight”>140%</property>
<property name=”Size”>16px</property>
<property name=”Style”></property>
<property name=”Variant”></property>
<property name=”Weight”>700</property>
</property>
<property name=”Height”>29</property>
<property name=”Left”>61</property>
<property name=”Link”>index.php</property>
<property name=”LinkTarget”>_blank</property>
<property name=”Name”>Label1</property>
<property name=”ParentColor”>0</property>
<property name=”ParentFont”>0</property>
<property name=”Top”>40</property>
<property name=”Width”>235</property>
</object>
</object>
?>

Yorum bırakın »