Bu sayfadaki yazılar
Sayfanın metni
Sayfa 56
private $html;
// Yapici Fonksiyon function — construct ($sgl1, 1
$baglanti)
// “html" Degiskenini Temizle $this->html »
// SOL'i Calistir $tablo mysgl guery($sgl,
$baglanti);
// Tabloyu Ac $this->html
"<table border-'l1'>";
// Tablo Basligi $this->html .- "<tr bgcolor-'#EEEEEE'>"; for (Şi 0; $i < mysgl num fields($tablo); $Şi4t4) $this->html mysgl field " </td>"; .— "</tr>;
Şi). $this->html // Tablo Icerigi
while($satir mysgl fetch array($tablo) 1
// Tablo Satirlari
$this->html .— "<tr>"; for($i - O; $i < mysgl num fields($tablo); $Şit4)
$this—->html
" </td>";
.— "</tr>"; ) // Tabloyu Kapat $this->html .- "</table>";
)
// Göster metodu public function Goster()
// Tablosu Ekrana Yansit echo $this->html;
)
// Veritabani Baglantisi
$MySOL - new MySOLBaglantisi("127.0.0.1", mu $baglanti -
// SOLlere Ait Tablolari Olustur
$tablol - new Tablo("SELECT * FROM db", $baglanti); $tablo2 - new Tablo("SELECT *
FROM user", $baglanti);
// Tablolari Ekranda Goster $tablol->Goster();
echo "<br>"; $tablo2->Goster();
Bu örnekte daha önce öğrendiğimiz sınıflar ile ilgili öğrendiğimiz bilgileri veritabanı konusunda öğrendiklerimizle birleştirmiş olduk.
İki farklı sınıf kullandık. MySQLBaglantisi ve Tablo sınıfları.
MySQLBaglantisi sınıfı bütün MySQL bağlantı işlerini üstlenen sınıftır. Bu sınıfı yaratırken sınıfın yapıcı fonksiyonu bağlantı için gerekli parametreleri alır ve kaydeder. Baglan() metodu ise bu bilgileri kullanarak bağlantı sağlar.
)
Tablo sınıfı ise yine yapıcı fonksiyonundan SQL sorgusu ve veritabanı bağlantısı bilgilerini kaydeder ve tabloyu HTML kodlar halinde oluşturur. Goster() metodu ile de oluşan bu HTML kodların ekrana çıktısını vermek mümkündür.
Bu Bölümün Değerlendirmesi
Şekil 2.
Geçen bölümde PHP'nin temel özellikleriyle bağladığımız bu yazı dizisinde, bu bölümde sınıflar gibi önemli ve PHP dilinde gelişmekte olan bir konuyu gördük. Daha da önemlisi PHP'nin en önemli kullanım alanlarından biri olan veritabanı uygulamalarına da giriş yaptık. Elbette ki bu doküman veritabanı konusuna derin bir şekilde değinmeyecektir ya da SQL dili hakkında detaylı bilgi vermeyecektir. Ancak çok az bir veritabanı altyapısına sahip bir kişinin PHP ile kolayca veritabanı uygulaması yazabilmesi için gerekli temel bilgileri içermektedir.
Önümüzdeki sayıda daha faydalı kullanım alanları olan örneklerle görüşmek üzere.
emir (at) akaydin (nokta) com
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 57
üzerine pişmişinden OOP kes, az da MVC döküver..."
Cem (Spaztica) Gencer
Beşiktaş'ta sabit pazarın yanında, üst geçidin altında yer alan ve yakın zamanda kapanan Bolu Et Lokantası'nı düşünürken attığım bu başlık, aslında tüm yazının içeriğini anlatıyor -ya da benim acıkmaya başladığımı... FutureWave Software (1993) olarak başlayan, kısa sürede (1996) MacroMedia tarafından satın alınan sonra da -hala yabancılığını çeksek de- Adobe'un gücünden beslenmeye başlayan bu platform, ağır gelişim evresini aşarak yapısının giderek kurallara bağlı hale gelmesi ve OOP gibi çağdaş bir şekle girmesiyle sağlıklı hale geldi.
Uzun süredir Flash'a göz ucuyla bakıp çeşitli denemelerinizde performansı düşük olduğu için burun kıvırıyorduk. AS2 ve öncesinde kullanıcılar için düşünülmüş esneklikler, hantallaşmaya sebep oluyordu. Kurallara ve OOP ilkelerine daha bağlı hale gelen ActionScript 3 ile artık daha erişkin bir dil / platformdan söz etmek mümkün. Yeni duyulmaya başlayan Flash 10 (Astro) dedikodularından da Flash'ın konumlanmasının radikal olarak değişeceği; erişimine, 3D rotasyona ve IK (bones) ile daha pratik animasyonlar oluşturulabileceğini geçenlerde bir blogda okudum. Yani Adobe, Flash ekibinin oluşturduğu ivmeyi, sağladığı kaynaklarla da daha da artırdı. Önümüzdeki versiyonlarda bizi neyin beklediğini kestirebilmek giderek zorlaşacak. Flex ve Air gibi yan teknolojilerle, Spry ve yakında alınacağını duyduğum AMFPHP gibi destekleyici framework'lerle Flash'ın gücü gerçekten katlanacağa benziyor. Karşı cephede MacroFos'un oluşturmaya çalıştığı SilverLight gibi bir ürünün zamanın getirdiği bu deneyimle baş etmesi ve sağlıklı bir yer edinmesi zor olacağa benzer. Kurumsal müşteriler, elbette her zaman uyuşturucu bağımlısı gibi kendi torbacılarından beslenmek isteyeceklerdir. Neticede bir torbacı da olsa, müşterisini kaybetmek istemez.
Bu yazıda OOP ilkelerinin ve MVC'nin AS3 üzerinde nasıl uygulanabildiğini göstermeye çalışacağım. AS2'den AS3'e geçmek isteyenler de buradaki temel prensiplere sadık kalırlarsa sorunları azalacaktır. Bu temeller olmadan önümüzdeki sayılarda ele alacağım konuları kavramak zor olurdu. Görsel efekt ve benzeri demo kültürünü ilgilendiren konular ağırlıklı ilgi alanımız olacak; basit bannerlar yapmak ya da dinamik içerik sunmak gibi konularda web üzerinde yazılmış tonla kaynak zaten mevcut.
Yazılarım, terminoloji açısından klasik bilişim çevirilerinden biraz farklı olabilir. Object Oriented Programming tanımlamasını herkesin kabul ettiği gibi nesne yönelimli diye çeviremiyorum; bunun önemli sebebi pratiklik. İngilizce terminoloji halinden fazla uzaklaşmazsak, başka bir yerde object olarak okuduğunuz bir tanımlamanın nesne olup olmadığını düşünmezsiniz. Bunun gibi bazı terimleri İngilizce bırakmak okunurluğu rahatlatan, uygulama açısından da pratik olacak bir tercih.
Kontrol Etmek, Kontrol Edilmektir...
Bir Zen ustası kontrolü reddeder. Kontrol etmeye çalıştığınız sürece kontrol sizi kendisine bağlı kılar. Kodunuzu tek bir yerde toplamak, kontrolü elinizde tutmak gibidir. O güç asla sizde olmayacaktır, asla kontrolü elinizde tutamazsınız, tuttuğunuzu düşündüğünüzde aslında siz kontrol altında tutuluyor olursunuz. Kontrol de asla ulaşılamayan gereksiz bir amaç olur. Budistlerin Samsara olarak adlandırdığı ve farkındalıkla kurtulmaya çalıştıkları sonsuz döngü ancak farkındalık ve dışında durmayı tercih etmekle kırılabilir; aynı şekilde kontrol döngüsü de.
Düz akışlı ve fonksiyon bazlı kodlamada alıştığımız her şeyi bir dosyada, bir listede toplamak, aşırı kontrolün sonucu; yazdığımız programa ait her parçanın elimizin altında olmasını isteriz. OOP'un oluşmasıyla, her oluşturulan objeyi bir yaşam biçim olarak görebiliriz. Bu objelere verdiğiniz görevlere, yapacaklarına güvenmeniz, işleri bu şekilde bölüştürüp delege etmeniz, vaktinizi artıracak, karışıklığı ise azaltacak bir yol.
Yazdığınız kod parçalarını amaçlarına göre düzenleyin ve her bir metodu, gerçek amaçları için kullanarak kendinizi özgür bırakın. Amaçları iç içe geçmiş kod yığınları sadece kodunuzu karıştırmaya ve sizi bug'larla uğraşmaya mahkum bırakır.
Hantallık ya da Aşırı Esneklik...
ActionScript'in önemli bir yavaşlatıcı unsuru, esnek model idi. Bunun sayesinde programlama deneyimi fazla olmayan kişiler, rahatlıkla 3-4 satır ekleyerek pratik fonksiyonları gerçekleştirebiliyordu. En basitinden değişkenlerin tipinin tanımlanmamış olması, player'ın her türlü değişkeni kendi içinde inceleyerek uygun şekilde ele alması gibi bir yavaşlatıcı etkene sebep oluyordu. Bu yüzden AS3 kullanırken değişken tiplerini tanımlamak bir gereklilik oldu. Daha önceden kolaylık sağlayan Number tipi de int ve uint gibi iki gruba ayrıldı. Bu sayede int ile pozitif ve negatif değerleri, uint ile de sadece pozitif değerleri tanımlıyoruz.