Plug-in'in sözlüksel açıklaması ana programa ek olarak, bir ihtiyaç üzerine yazılan ek programcıktır (Örn: Vikipedi). Herhangi bir dilde plug-in yazarken genel mantık:
PHP'de plug-in örneği... :
|
|
Yukarıdaki kodları okuma amaçlı yazdık. Burada önce dizini okunur, okunamazsa hata verir. Bu sayfayı 'plugincigim.php' olarak kaydedin. Sonra asagidaki kodları dizininize 'eklentiler', eklentilerin icine 'test' klasorunu, test klasorunun icine de 'veri.php' oluşturup aşağıdaki kodları yapıştırın.
|
|
index.php'ye de aşağıdaki kodları yapıştırıp sayfayı çalıştırın...
|
|
iyi çalışmalar
Ahmet ERTEM
önceki yazı jQuery Nasıl Çalışır |
sonraki yazı Jquery & Asp.net Rating (Oylama) Sistemi yapalım |
Bu plug-in değil, php de pluginler çeşit çeşittir,eğer php istediğinizi yapmanıza imkan vermiyorsa , siz de istediğinizi c diliyle yazıldıktan sonra derler ve phpnin built-in fonksiyonlarına ekleyebilirsiniz. Pecl de bunun en iyi örneklerini görebilirsiniz ; şuradan bakabilirsiniz. Hepsi açık kaynak kodludur,kaynak kodlarına göz atmanızı tavsiye ediyorum. http://pecl.php.net/
Hadi plug-in(eklenti) kısmını geçelim. Object oriented programlamaya girmek için şu iki bağlantıyı tavsiye ederim-> http://php.net/manual/en/language.oop5.php
Sizin yapmak istediğinizi yapabilmek için php içinde basit bir fonksiyon yazılabilir, böylece her sayfada tekrar tekrar çağırmak ve kullanmak daha pratik olur. Fonksiyon yazmayı da aşağıdaki bağlantıdan öğrenebilirsiniz.
http://www.php.net/manual/en/functions.user-defined.php
Yukarıda verdiğim üç bağlantı da phpnin resmi sitesine ait kabul edilebilir kaynaklar. Bunun dışında no starch press in object oriented php adlı kitabı bu konuda aşmıştır.
Kitap hakkında bilgiye şuradan(resmi sayfasından) http://objectorientedphp.com ulaşabilirsin.
Bir de yazılarını yazarken , ekran çıktısı kullanmanı tavsiye ediyorum. Bu yorum en son paragraflarda tavsiye edilen kitap hariç tartışmaya açık değildir,çünkü bütün kaynaklar resmi kaynaklardır.
@lonelycavalry amaç bilgi vermekse... Eyvallah. Ki amacın bilgiden çok rencide etmeye yönelik. Bu yorumum tartışmaya açık değildir çünkü yazarın yazdığınından hiçbirşey anlamamışsın. Burda amaç PHP'ye plug-in yazmak değil. Anlaman için örneklerle açıklayayım;
Wordpress plug-in leri. PHP ye değil. Php ile yazılan bir sisteme plug-in.
Joomla plug-in leri. PHP'ye değil. Php ile yazılan Joomla ya plug-in.
.... gibi gibi gibi...
Yazdığınız bir sisteme plug-in yazdırabilmek için illa php ye mi plug-in yazmam gerekiyor. Lütfen yazarın yazdıklarını bir okuyalım. Bir tahlil edelim. Anlamaya çalışalım. Bu adam ne yazmış. Çok bilmek bazen hiçbir işe yaramıyor. Yanlış yerde ve yanlış zamanda kullanılınca çok kötü durumlara düşürüyor.
Bu plug-in değil, php de pluginler çeşit çeşittir,eğer php istediğinizi yapmanıza imkan vermiyorsa , siz de istediğinizi c diliyle yazıldıktan sonra derler ve phpnin built-in fonksiyonlarına ekleyebilirsiniz.
Şimdi php ile yazmış olduğum mini portal'a yukarıdaki kodları ekleyince. PHP ile yazılmış bir portal'a plug-in desteği kazandırıyorum. Bu sistemi piyasaya sürdüğümde isteyen yazılımcı sistemin kodları ile uğraşmadan kendi eklentisini yazıp sadece dizin içerisine atması ile çalıştırabilecek.
E benim bildiğim plug-in bu zaten.
Oku. Düşün. Anla. Araştır(Doğruluğunu), Test Et, Yorum yap.
Sen sanırım 1 den sona atlamışsın.
Saygılarımla.
Bu plugin'den çok, dışarıdan include ile varolanı içeri çağırmaktan farklı birşey göremedim. Şayet plugin yapmak gibi bir merakın varsa pluginlerinin kendine özgü bir sintaksı olmalı. Benim plugin'den anladığım bu.
Yoksa dışarıdan plugin geliştirecek adama ben mysql yapımı, özel fonksiyonlarımı dökersem bu işin ne anlamı kalır??
Örnek
Blog içerisinde son yorumları gösteren bir plugin yazıyor bir arkadaşım.
Bu adamın mysql yapısını bilmesi ve buna bağlı olarak bir kod yazması gerekiyor. Ne kadar sağlıklı olacağı da tartışılır.
Ancak biz kullanıcıya özel bir yapı sağlarsak kullanıcı kodların içerisinde boğulmadan sağlıklı ve güvenli bir plugin yazabilir
örnek yapı mesela :
yorum(limit=5) [
bu tarz bir syntax'i işleyecek bir yapı yaparsan şayet işte o zaman plugin mantığını yakalamış olursun..
sizin yaptığınızı ben 2005'te ilk çaylaklık dönemlerimde mysql ile yazmıştım.
index dosyamın içine şöyle çağırıyordum
readfile('modulcagir.php?moduladi=puandurumu')
Kolay gelsin
Kendi yazmış olduğum sistemde modül işlemleri şöyle oluyor ;
öncelikle yazacağım modül için head taglarını ve modülün adını belirliyorum ;
/** * Version:1.0 * Author: abc * Url: http://www.mmm.com * Content:bu bir test plugini * E-mail:deneme@deneme.com * Plugin name: Test */function saat(){ printf ("|şu an saat : "); echo date('H:m:s');
}
func::_register('check_time,'saat');
func::_register('wrap','saat');
sql::exec_query('ID,username,name,session_time','user','user_list');
sql::$pool['user_list'][2]['name'];
bu şekilde olup aynı olan değerleri filtre olup tek dizi haline geliyor Array_unique 'in yaptığı iş ile aynı bu sql sınıfım yakında burada yayınlarım ..
sql::exec_query('ID,password','user','user_list');
burda mantık anlatmaya çalıştık plug-in classı yazdım
Class? Benmi yanlış biliyorum, yoksa php.net'mi, yoksa senmi ?
Ben 5 senedir php yazıyorum. Eğer burada 1 haftalık eğitim seviyesinde yazılar yazarda sonra bana kendini kanıtlamaya çalışıyor gibi bir yakıştırma yapar isen benim yazdıklarım altında ezilirsin kusura bakma.
Başarısız bir bildiriyi yayınlattırmayı başarıp ta, daha sonra silinmesini istemek yanlış bir davranıştır.
Bu bildiriyi yalnızca onu yazan okumuyor,kodaman'ın geniş bir ziyaretçi kitlesi var, o kodu plug-in olarak belleyip te php'yi yanlış öğrenmelerini istemediğim için o yorumu yazdım. Öğrenmek isteyen öğrenir,öğrenmek istemeyen de bildiği gibi kod yazmaya devam eder. O yorumu hem sizin için,hem de php öğrenmeye meraklı olanlar için yazdım ve her bir kelimesinin arkasındayım.
Ben sadece gerekli ve resmi kaynakları tavsiye ettim,gerisi öğrenmek isteyenlere kalmış. No starch press'in Object Oriented kitabı ve php nin dökümantasyonu dehşettir.
iyi günler.
.
Gereksiz bir polemik olmuş. Bildirinin anlatmaya çalıştığı mantığı anlamak güzel. Bildiriyi yazan arkadaşın bilgi seviyesi bizim ki kadar olmayabilir. ben 9 senedir profesyonel'im bazılarımız 5 bazılarımız 2 önemli olarak buradaki mantık.
PHP'de plug-in denildiğinde bizim aklımıza elbetteki pelc gibi şeyler gelecektir. Çünkü biz PHP'de ki plug-ini o şekilde olduğunu biliyoruz ama bu arkadaş bilmiyor olabilir. Gelen yorumdada bu anlatılmış zaten.
Burada anlatılan yöntem çok basic derecede bir yöntem lonelycavalry bize Plug'in ne demek olduğunu ve anlatılan mantığın aslında ne şekilde yazılabileceğine dair kaynak vermiş.
Bence faydanılması gerekilen bir yorum yazıda kendi seviyesinde gayet başarılı.
Bildirgec'ten miras mıdır nedir, yorumlar neden hep konuyla alakasız, genellikle de yazanı yerme amacı taşır anlamadım. Çok bildiğini söyleyenin bir tane yazısı yoktur, süper olduğunu iddia etmeyen birşeyler yazmaya kalkar ama pişman edilmek istenir.
@Dillian, bence pişman olma. Bütün bunlara rağmen devam et...
Tuncay insanların yanlış yönlenmesini engellemek için ben ve benimle aynı fikirde olan insanlar bu konuda birşeyler yazdılar. Sen şu kodu biraz incele sonrada yazının başlığına ve yorumlarına bak.
Dillian
Bak arkadaşım, Benim yazdığım hiçbirşeye somut hiçbir cevabın yok. Senin yaşında benim 2 kardeşim var. Heyecanını yaşına veriyorum. Ama insanlara saygı göstermesini öğren öncelikle.
Benim burda yazı yazmaya, pillinin kazancından payıma düşecek olan 3-5 doları kazanmaya ihtiyacım yok. Buradan iş almak gibi bir amacım hiç yok. Kimseyi tanımadan etmeden burada ahkam kesmeyin.
Konu insanları PHP hakkında derinlemesine bilgilendirme konusu değil ki yanlış bir yönlendirme söz konusu olsun. Arkadaş kendince bir yöntem geliştirmiş ve ilgilenenlerle paylaşmak istemiş. Konunun başlığı "PHP'ye Plug-in Yazmak" olsa savında haklısın diyebileceğim ama sanırım sen anlamak istediğin gibi anlamışsın. Buraya yazı yazanları da üçün-beşin takipçisi olmakla itham ediyorsun ve bize ahkam kesme diyorsun. Burada da bir çelişki var. Belli ki sadece yazmak için yazmışsın...
Plugin ve Class'larınızda başarılar diliyorum. Madem böyle düşünüyorsunuz.
Dillian, saygısızlığın artık terbiyesizlik boyutlarına geldi. Hangi mesajımı silip silmeyeceğimi sana sormayacağım.
Bu polemik uzar gider. Yalnız söylemek istediğim bir konu var ki bunu söylemezsem çatlarım gibi geliyor. Takılmışsın bir Class'a, ama konuyu yazan "burda mantık anlatmaya çalıştım, plug-in classı yazdım, alın kullanın demedim" demiş, sen bunun sadece plug-in classı yazdım kısmını almışsın. Adam class yazmadığını söylüyor sen "bu nasıl class" diyorsun. Okuduğunu anlamadan atıp tutuyorsun, cevap verilince de terbiyesizlikle, saygısızlıkla suçluyorsun. Asıl saygı yazanın ne yazdığını anlamaya çalışmakla olmaz mı?
Ben 2005de bir script yazdım. Domain düştü ben askerdeyken. Yayınlamadım daha sonra domaini kaptılar. İnsanlar bir ton para kazandı bu script üzerinden. Siteler yaptılar. Ücretsiz dağıttım.
Sonra bildirgec'te biri yayınlamış 2 sene önce bildiri olarak Şuradan görülebilir. Yorumlarda css'lerin DW'de yazılmasından dolayı sistem komple DW üzerinde yazılmış gibi boş bilgisiz ithamlarda bulunuldu. Emeğime çok saygısızlık duyuldu. Bazısı yerin dibine soktu. Bazısı garipsedi ücretsiz dağıtmamı. Hatta salakmısın diye dalga geçen adamlar oldu.
Ondan dolayı bana emekten. Emeğe saygısızlıktan falan kimse bahsetmesin. Ben emeğinde ne olduğunu çok iyi biliyorum. Emeğin Türkiyede nasıl tüketildiğinide. Nasıl yerildiğinide.
sizleri "saygıyla" selamlıyorum. durmak yok yola devam.
Bu pluginse Wordpress eklentileri ya da Zend Framework plugin motoru 2020 yılının teknolojileri olsa gerek. :)
Bu plug-in değil sadece basit bir mantık. Ama senin gibi mantıksız hareket eden birinin anlamaması normal. Ortam giderek çirkefleşmeye başladı, Allah sonumuzu hayır etsin...
başlığında "php de plugin" yazan, plugin nedir'in açıklamasıyla başlanan bir bildiri için basit bir mantık açıklaması yapmak, plugin değildir demek senin mantıksızlığın oluyor farkındamısın. kendini boşuna kandırma.
insanlara hakaret edip seviyeni düşürerek seviyesizlik yapma. terbiyesizliğin luzumu yok.
Terbiyeyi de saygıyı da sizden öğrenecek değilim. Yaptığım size sizin anladığınız dilden cevap vermek. Eleştiriyle hakareti ayırt edemeyenler bunu hak ediyor...
Anlayamayan arkadaşlar için açıklama:
Hepsinin ortak yanı şu;
Varolan / varedilen bir sisteme / programa / alet(makina-device deniyor yukarıda)'e sonradan spesifik(özgün, karekteristik) özellikler kazandıran eklentidir. Ne girdiniz object orienteda, classa, 9 senedir php yazıyoruma,
Bildirgec'ten miras mıdır nedir, yorumlar neden hep konuyla alakasız, genellikle de yazanı yerme amacı taşır anlamadım. Çok bildiğini söyleyenin bir tane yazısı yoktur, süper olduğunu iddia etmeyen birşeyler yazmaya kalkar ama pişman edilmek istenir.
Bundan daha haklı bir yorum daha göremedim. 2. yorumu ben yazdım ve hala arkasındayım. Yahu adam bildiği kadarı ile birşeyler yazmış. "PHP'ye" dememiş "PHP'de" demiş. Yani "PHP ile". Nereden akla geldi pecl. PHP+Plug-in = pecl mi yani. Aynı örneği yine vericem ama napalım. Anlamak istemiyor bazıları. Wordpress'e plug-in yazmak pecl mi oluyor. pecl.php.net diyor ki;
PECL is a repository for PHP Extensions, providing a directory of all known extensions and hosting facilities for downloading and development of PHP extensions.
"Extension" ile Plug-in arasında hatrısayılır bir fark olduğunu düşünüyorum.
Yahu jQuery plug-in diye birşey var. explorer'ın yada firefox'un javascript motoruna müdehale mi ediyoruz. Size karpuz diyoruz hemen başlıyorsunuz çekirdekten anlatmaya. Kimsenin aklıan gelmiyorki "yaz meyvesidir, soğuk yenir, beyaz peynir ve rakıyla iyi gider." demek. Banane class dan object oriented dan pecl den. Ben Joomla ya plug-in yazıcam, ben mootools'a eklenti yapıcam. Bu kadar basit. Zorlaştırmayın.
Kimse sana plugin yazamazsın demedi , eğer öğrenirsen yazabilirsin dediler.
Yukarıda onlarca yorumda kimse pluginin felsefesini de sorgulamamış ama sen o yönde bir google araştırması yapmışsın ne güzel de öğrenmişsindir. İnsanın fiziki ve beyin açısından herhangi bir sınırı yoktur,istedikten sonra herşeyi öğrenebilir ve yapabilir.
Senin bildiride verdiğin koda spagetti kod diyorlar, onu forma sokman ne bileyim bir fonksiyona veya bir class'a atman gelecekte işlerin hacmi arttığında kodda bir değişiklik yapmak istediğinde 10 saatini alacağına yarım saati alır.
Bu bildiriyi kodamanda paylaşırken "sağol birader muhteşem" , "teraziye tıklıyorum abi sağol","abi kralsın","abi phpyi bulan adam andi gutman bile yazamazdı bunu,bravo" , "abi sen niye yeni bi programlama dili yaratmıyorsun" gibi yorumlar beklediysen hata etmişsin. Eskiden ben de gelen sağda solda birisi negatif bir yorum yaparsa çok kızardım,ama sonra o yorumları yazanlara teşekkür etmeyi de öğrendim. Seni pohpohlayan,yücelten insanlar sana hiçbir şey öğretemezler, ancak seni eleştirmeleri,kızmaları,doğru tarafı gösteren insanlar sana çok şey öğretebilirler. Bu sadece bu bildiri ve altındaki yorumlar için geçerli değil, hayatın her alanı için geçerli. Eğer halen esip gürleyeceksen hiç esip gürleme, 3-4 yıl sonra bugüne geri dön ve bu bildirinin altındaki yorumları tekrar tekrar oku, hepsine hak vereceksin.
@lonelycavalry öyle bir yazı yazmışın ki gören bildiriyi ben yazdım sanır. Daha yazdıklarımı okumamışsın ki adam gibi. "2.(ikinci) yorumu ben yazdım" demişim orda. Bildiriyi ben yazdım değil!
Bu bildiriyi kodamanda paylaşırken "sağol birader muhteşem" , "teraziye tıklıyorum abi sağol","abi kralsın","abi phpyi bulan adam andi gutman bile yazamazdı bunu,bravo" , "abi sen niye yeni bi programlama dili yaratmıyorsun" gibi yorumlar beklediysen hata etmişsin.
gibi yorumlar beklemem mümkün değil. Bildiriyi ben yayınlamadm. Biliyorum dengeni sarsacak bir açıklama oldu. Ha bu arada ben öğrenmek için değil sen ve senin gibiler "çok bildiğini sanan" tekrar bi baksın bakalım diye "google araştırması" yaptım.
Eğer halen esip gürleyeceksen hiç esip gürleme, 3-4 yıl sonra bugüne geri dön ve bu bildirinin altındaki yorumları tekrar tekrar oku, hepsine hak vereceksin.
Esip gürlicem çünkü hala dengeli ve mantıklı bir yazı yazmamışsın. "Bildiriyi ben yazmadım!". "2.(ikinci) yorumda" ne yazdım bi tekrar bak istersen.
Oku. Düşün. Anla. Araştır(Doğruluğunu), Test Et, Yorum yap.Sen sanırım 1 den sona atlamışsın.
E sen gene aynı şeyi yapmışsın. Bak umarım bu sefer anlamışsındır. Ama ben genede bi tekrar edeyim. Nede olsa okuduğunu anlamakta biraz zorlanıyor gibisin. "Bildiriyi ben yazmadım" ve Senin okuduğunu anlamadığın konusunda hala ısrar ediyorum. Bir zahmet "oku".
Sevgiler. Saygılar.
Bölüm 1:
@golduck,her cevabımı yazmadan önce bildiriyi ve bütün cevapları teker teker baştan sona okuduktan sonra yazıyorum,kullanıcı adlarını karıştırdığım ve yanlışlıkla bildiriyi sizin yazdığınızı hatırladığım için sizden tekrar tekrar özür dilerim. Bildiriyi yazmadığınızı üç dört kez aynı yorumun içinde kullanmanız da hoş olmamış, oysa ben yorumumda nickinizi tek bir yerde kullanmıştım.
Aynı zamanda sizden özür dilemem sonucu yorumunuzun tümünü doğru olarak kabul ettiğimi lütfen düşünmeyiniz.
Bu bildiride paylaşılan kodu bir kaç kişi plugin olarak kabul edebilir,sakınca yok. Ama doğrusu bu değildir, insanlara bunun plugin olarak öğretilmesine karşıyım.
_________________________________________________
Bölüm 2:
Aslında yukarıda o kadar yazdım,çizdim,bağlantılar verdim;bütün bunları niye yaptığımı tekrar tekrar sorguladım,her seferinde yukarıda yazdıklarımın arkasında durdum.
Konu hakkında eksiği olanların, birşeyler öğrenmeleri için resmi kaynaklara ve kabul görmüş bir kitaba referans(link) verdim. Çünkü yukarıdaki kod bir plugin değildir, insanların doğrusunu öğrenmesini isterim.
@centrual kullanıcı adlı kodaman üyesi de güzel bir yazı yayınlamış,php de class yapısını gayet temiz ve işlevsel bir kodla herkesin anlayabileceği şekilde anlatmış,tavsiye ederim-> http://www.kodaman.org/yazi/php-class-yapisi
Ben de böyle akıcı bir dille giriş seviyesine yönelik yazı yazabilmeyi çok isterdim.
Keşke yıllar önce internet günümüzdeki gibi bir "bilgi denizi" olsaydı herşey daha kolaydı,email listelerinde birisi işe yarar link verirse 40 yıl teşekkür ederdik, şimdi öyle değil linkleri digg,delicious,google,friendfeed gibi yerlerden de bulabiliyoruz.
Kodaman okuyucularının bir kelime bile olsa öğrenmelerini isterim,üstüne basa basa söylüyorum,bu bildirideki(Php'de Plug-In (Eklenti) Yazma Mantığı) gibi bir kod yazarsanız ve bunu da bir plugin olarak kullanırsanız ve bunu birden fazla programcının çalıştığı bir projede kullanırsanız işten atılma olasılığınız da gayet yüksektir.
Bazı şeylerin standartları vardır, standartlar daha rahat bir kullanım sunarlar,gelecekte genişleme veya herhangi bir sorunda tek bir dosya üzerinden yapılan değişikliğin 100lerce dosyayı tekrar tekrar editleme ihtiyacı hissettirmemesi gibi esneklikler sunarlar. Ayrıca standartlar üzerinde çalıştığınız projeyi bir başkasına devrettiğinizde karşı tarafın koda daha rahat adapte olmasını ve önceki programcının kafa yapısını,mantığını daha hızlı bir şekilde anlamasını sağlar.
Son bir kaynak olarak ta, temiz ve işlevsel bir kodlama ve classların,fonksiyonların ,plug-inlerin kullanımının ne kadar önemli olduğunu görmeniz için facebook'un kaynak kodunu incelemenizi öneriyorum.
http://developers.facebook.com/opensource.php
adresinden, Facebook Open Platform 'u indireceksiniz.
plug-in deyince, olaylar karışır. ben de başlıktan php'de plug-in deyince c'de derlenip php.ini ile çağırılan so veya dll dosyalarını kastediyorsun sanmıştım, kendimi yanlış anlamış kabul ediyorum, yazarın kafasındaki plugin kavramına göre güzel bir yazı :)
teşekkürler.
pillinetwork sitelerine yorum ekleyebilmek ve daha fazlası için, üye olun ya da giriş yapın.
Nokta ve pilli ortak yapımı olan kodaman.org hep birlikte içerik üretip gelirini yazarları ile paylaştığımız kolektif bir kod yazarları blogudur. Siz de katılabilirsiniz.