nameless Mesaj tarihi: Eylül 19, 2011 Paylaş Mesaj tarihi: Eylül 19, 2011 selams gençler, aklımdaki bir fikri hayata geçirmeye çalışıyorum. yapacağım site için ilk başta codeigniter framework'unu kullanıyordum ama kullanıcı anlaşması canımı sıktığı için ben de sıfırdan bir şeyler yazmaya karar verdim. Şu anda router ve security sınıfları dışında her şeyi tamamladım. merak ettiğim bir soru var; bir çok cs'ci ve bu konuda sağlam kişiler olduğunu biliyorum forumda. maruzat starts: yeni controller'ler ana controller sınıfından inherit ediliyor ve ana controller sınıfı singleton şablonunu kullanıyor. ana nesne o sırada çağrılan controller sınıfının nesnesi. ana ve örnek controller'ler şu şekilde (biliyorum codeigniter'e benziyor ama olur o kadar) <?php class Controller { private static $instance; var $load; function __construct() { self::$instance =& $this; $this->load =& loadClass('Loader', 'engine'); } public static function &getInstance() { if (!isset(self::$instance)) { self::$instance = new self(); } return self::$instance; } } <?php class Home extends Controller { function __construct() { parent::__construct(); } function show() { $this->load->view('home_view'); } } dependecy injection kullanmak daha mı mantıklı olur yoksa böyle mi devam etmeliyim? bir sürü şey okudum ama kararsız kaldım. edit: ayrıca, anonim değişken kullanmak ne kadar sağlıklı performans açısından? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
senko Mesaj tarihi: Eylül 19, 2011 Paylaş Mesaj tarihi: Eylül 19, 2011 singleton patternda constructorda private olur genelde, publicte bi cesit get metodu yaparak static Controller* instance'yi alirsin. burda constructor private mi public mi onu anlayamadim syntaxi bilmedigim icin, private ise sorun yok zaten. Zamaninda benimde yaptigim bi hataydi o yuzden bi hatirlatayim dedim. Onun disinda konu hakkinda bilgim yok :) Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
nameless Mesaj tarihi: Eylül 19, 2011 Konuyu açan Paylaş Mesaj tarihi: Eylül 19, 2011 private constructor :W şu anda kara kara düşünüyorum. dün öğlen beş gibi başlayıp bugün 12'de arada 8 saat uyuyarak bitirdim, zaman sorun olmaz değişiklik için. ana bir container sınıfı oluşturup öyle mi yapsam diye düşünüyorum, ana controller oradan inherit edecek vs gibi. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
nameless Mesaj tarihi: Eylül 19, 2011 Konuyu açan Paylaş Mesaj tarihi: Eylül 19, 2011 anonim değişkenle demek istediğim şu: sınıfta var olmayan bir değişkeni $this->$class = new $class() diyerek o anda istediğimiz sınıfı ismiyle ekleyebiliyoruz. bunun performansa etkisi nasıldır? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
odullusoru Mesaj tarihi: Eylül 20, 2011 Paylaş Mesaj tarihi: Eylül 20, 2011 kullanıcı anlaşmasındaki ne canını sıktı tam olarak Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Kojiroh Mesaj tarihi: Eylül 20, 2011 Paylaş Mesaj tarihi: Eylül 20, 2011 CodeIgniter'da da böyle, artı singleton patternda ctor private ya da protected olur evet. Ama yine aynı CodeIgniter yolunda ilerliyosan her şeyi baştan yazmak zaman kaybı olur bana kalırsa. Hoşuna gitmeyen kullanıcı anlaşması şeysi neyse ona katlan derim sdf Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
di Mesaj tarihi: Eylül 20, 2011 Paylaş Mesaj tarihi: Eylül 20, 2011 Hazir yapilmisi var, satarim. =P Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Seele Mesaj tarihi: Eylül 20, 2011 Paylaş Mesaj tarihi: Eylül 20, 2011 isini görür mü bilmem ama zamaninda güzel bir site yapmistim bundan baya iyidi. http://www.smarty.net/ Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Anason Mesaj tarihi: Eylül 20, 2011 Paylaş Mesaj tarihi: Eylül 20, 2011 DI 'yi burda neyin yerine kullanicaksin o tam anlasilmiyor. Singleton base class'in yerine mi? yoksa inherit etmek yerine bu base class'i DI ile Home'a gecirmek mi dusundugun sey? DI daha cok nesneleri birbirinden bagimsizlistirmayi saglayan ve bunu icin framework bile yazilabilinicek birsey. bence bu kod icin (madem controller ve Home birbirine oldukca bagli) factory pattern kullanabilirsin ve gayetde basit, anlasilir olur. bu factory pattern'de singleton controller objesini dondurebilir eger gerekliyse. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Anason Mesaj tarihi: Eylül 20, 2011 Paylaş Mesaj tarihi: Eylül 20, 2011 nameless said: anonim değişkenle demek istediğim şu: sınıfta var olmayan bir değişkeni $this->$class = new $class() diyerek o anda istediğimiz sınıfı ismiyle ekleyebiliyoruz. bunun performansa etkisi nasıldır? php'yi bilmem ama su soz bence aklinin bi kosesinde hep kalsin; 'premature optimization is the root of all evil' - Donald Knuth. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
nameless Mesaj tarihi: Eylül 20, 2011 Konuyu açan Paylaş Mesaj tarihi: Eylül 20, 2011 odullusoru said: kullanıcı anlaşmasındaki ne canını sıktı tam olarak codeigniter ile türetilmiştir diye yazmak zorunda kalmak. diğer framework'lerde böyle bir zorlama yok. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
nameless Mesaj tarihi: Eylül 20, 2011 Konuyu açan Paylaş Mesaj tarihi: Eylül 20, 2011 Anason said: DI 'yi burda neyin yerine kullanicaksin o tam anlasilmiyor. Singleton base class'in yerine mi? yoksa inherit etmek yerine bu base class'i DI ile Home'a gecirmek mi dusundugun sey? yeni çağırılan sınıfları ana sınıfa eklemek için düşünmüştüm. mantıksız mı düşüncem. yine singleton base class duracak ama ondan türettiğim controller sınıftan ana nesne üretildiğinde çağırılan diğer sınıflar bu ana nesneye inject edilecek. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Anason Mesaj tarihi: Eylül 20, 2011 Paylaş Mesaj tarihi: Eylül 20, 2011 Hmm anladim, benim dusundugumun tam tersini dusunmussun. yapmak istedigin icin DI yi kullanmaya gerek yok, nasilsa base class'inda static degiskenler var. o static degiskenlerde her turettigin siniflari (derived classlari) oraya ekleyebilirsin. DI daha cok classlar arasi bagimliligi ayirarak gerekli methodlari yada siniflara karar veren ve bunlari baska siniflara gondermek icin var. mesela Home, controllerdan turemeseydi, DI sayesinde sen Home'a controller'i constructor parametresi olarak gonderebilirdin gibi. nameless said: Anason said: DI 'yi burda neyin yerine kullanicaksin o tam anlasilmiyor. Singleton base class'in yerine mi? yoksa inherit etmek yerine bu base class'i DI ile Home'a gecirmek mi dusundugun sey? yeni çağırılan sınıfları ana sınıfa eklemek için düşünmüştüm. mantıksız mı düşüncem. yine singleton base class duracak ama ondan türettiğim controller sınıftan ana nesne üretildiğinde çağırılan diğer sınıflar bu ana nesneye inject edilecek. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
nameless Mesaj tarihi: Eylül 20, 2011 Konuyu açan Paylaş Mesaj tarihi: Eylül 20, 2011 teşekkür ederim anladım dediğini. o zaman controller'dan inherit olmayanları inject edebilirim constructor veya setter fonksiyonlar ile? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
odullusoru Mesaj tarihi: Eylül 20, 2011 Paylaş Mesaj tarihi: Eylül 20, 2011 nameless said: odullusoru said: kullanıcı anlaşmasındaki ne canını sıktı tam olarak codeigniter ile türetilmiştir diye yazmak zorunda kalmak. diğer framework'lerde böyle bir zorlama yok. nerede yazıyor bu tam olarak ? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Anason Mesaj tarihi: Eylül 20, 2011 Paylaş Mesaj tarihi: Eylül 20, 2011 evet aynen oyle. boylelikle home ve controller arasindaki iliskiyide gozden gecirebilirsin. mesela home bir controllermidir (is-a iliskisi) yada controller'a sahip bir nesnemidir (has-a iliskisi). nameless said: teşekkür ederim anladım dediğini. o zaman controller'dan inherit olmayanları inject edebilirim constructor veya setter fonksiyonlar ile? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
nameless Mesaj tarihi: Eylül 28, 2011 Konuyu açan Paylaş Mesaj tarihi: Eylül 28, 2011 wrapper bir sınıf yaptım; sadece tek instance var oluyor ve controller ile model'a constructor ile inject ediliyor. şöyle bir şey yapabilirim: controller'i olaydan çıkarıp sadece model-view olarak da daha micro formata indirebilirim. model'in bazı fonksiyonları veriye erişir, diğer fonksiyonları (view'ları çağıran vs) controller gibi işler. iyi bir yaklaşım olur mu bu? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Öne çıkan mesajlar