di Mesaj tarihi: Mayıs 29, 2011 Mesaj tarihi: Mayıs 29, 2011 Selamlar, Kendi ihtiyaclarima yonelik olusturmaya calistigim bir nevi framework-cms tadinda bir yapi var ve gelistirme asamasi devam etmekte. Kararsiz kaldigim yerlerle ilgili olarak gorus ve oneri almak istiyorum. Hatta arada akla gelebilecek bir kac soruyu da cevaplamaya calisayim. Neden var olan yapilar yerine yeni bir yapi yaratmak istiyorum ? Cunku var olan yapilarin hemen hepsinde beni engelleyecek ya da vazgecmemi saglayacak bir faktor var. * Zend'in genel yavasligi. * Joomla, Wordpress gibi CMS'lerin yine klasik yavaslik ve duzgun kodlanmsmi plug-in sorunlari. * Ayni zamanda bu CMS'lerin dag gibi buyuyup haddinden karmasik hale gelmesi. * Hemen her MVC yapinin, yapi olarak birbirine benzemesi ama aliskanlik olarak yeterli yakinligi vermemesi bana gore kulagi tersten tutmaya fazlasiyla musait olmasi. Bunlar kisisel sebeplerim pek tabi. Olusturmaya calistigim yapi ise mumkun olan en basit ve en tembel insanlara (mesela ben =P) yonelik bir yapi. Genel bir ornek vermem gerekirse; require_once "Libs/Damn.php"; $damn = Damn::getInstance(); // Initialize the URI class for handling user's request. $damn->load('URI'); $damn->load('Modules'); $damn->load('Views'); if($damn->URI->module){ $damn->Modules->load($damn->URI->module); } else { $damn->Modules->load('main'); } Basitce anlatmam gerekirse; Main class'i (Damn) singleton olarak initiate edip sonra butun yapiyi onun ustunden kuruyorum. Hemen sonrasinda URI, Modules ve Views library class'larini load edip URL ustunden gelen istege gore lazim olan module'u cagiriyorum. Bu bana en mantikli gelen yapi zira bir web application'da talep her zaman URL ile gonderilir ve application'in ilk handle etmesi gereken de budur. Bu arada farkedebileceginiz gibi gerekli library'leri load ettikten sonra hepsine Damn class'i ustunden erisiyorum. Takip etmesi ve kullanimi oldukca kolay oluyor. Module'leri ise Damn class'ini extend edip, daha onceden load ettigim her turlu library ve class'a erisebilecegimi dusundum ama bu noktada birazcik patladim zira her ne kadar singleton class da kullansam bir class'i farkli bir class ile extend ettiginizde o class'i devam ettirmis olmuyorsunuz, yine kopyasini yaratmis oluyorsunuz. Bu noktada fikirlerinizi bekliyorum zira gidip Damn::getInstance() dedikten sonra bir class'i extend ederek yeni bir class olmasinin hic bir anlami olmadigini dusunuyorum. Kod ile orneklendirmek gerekise; sample.php ---------- <?php if (!defined('SECURED')) die('Access denied.'); class Sample extends Damn { public function __construct() { } public function index() { //This will load test.phtml $this->Views->load('test'); } public function __destruct() {} } ?> Bunu kullanamiyorum zira Damn class'i extend edilirken instance'i alinmadi, kopyasi yaraildi. Gidip index fonksiyonu icerisinde Damn::getInstance() deyip islerime devam edebilirim ama bunu yapinca zaten bir class kullanmanin bir getirisi olmuyor. Bunun yerine direkt; sample.php ---------- <?php $damn = Damn::getInstance(); //This will load test.phtml $damn->Views->load('test'); demek cok daha kisa ve basit. Su noktada fikirleriniz nedir diye merak ediyorum.
di Mesaj tarihi: Mayıs 31, 2011 Konuyu açan Mesaj tarihi: Mayıs 31, 2011 Forum'da PHP biliyorum, soyle kodlarim, boyle ucarim diye gezeni bu konuya gondericem. Bir suru adam var nasilsa anlayan eden diye yazdim, bi kisi cikmadi lan. Ayip.
Scheriff Mesaj tarihi: Mayıs 31, 2011 Mesaj tarihi: Mayıs 31, 2011 muhtemelen düşünmüşsündür de niye extend ettiğin class'ın construct'ında get_instance demiyorsun?
di Mesaj tarihi: Haziran 1, 2011 Konuyu açan Mesaj tarihi: Haziran 1, 2011 Direkt parent'in instance'ini almak yine kopyasi cikarilan icin bos class'in instance'ini almak oluyor esasen. Bu sebeple de ise yaramiyor. Ha gidip $hebele->Damn::getInstance() diyebilirim ama $this yerine herhangi bir noktada degismesi gerektiginde tum dosyalari degistirmeyi mecbur kilacak bir bir degisken ismi kullanmak istemiyorum esasen. Bu arada genel fikir main class'i extend etmenin buyuk bir hata oldugu ve bu isi model'lerin yuklenmesi gerektigi yonunde ve MVC yapilar icin gayet haklilar fakat izledigim ve istedigim ortaya cikarmak urun bir MVC degil, daha cok VC urunu tadinda. Tembel coder'a maksimum rahatligi saglamak amac. hehe.
Öne çıkan mesajlar