"Enter"a basıp içeriğe geçin

Kategori: PHP

Zend’de view render ederken değişkenleriniz değişmiyorsa!

Bu gece de uzun bir debug sürecinden sonra uyuz bir durumun çözümüne ulaştık. Unutmadan hemen kendime not düşeyim, ayrıca yarın bir gün saftorik bir eleman ‘abi bu nasıldı?’ derse ‘Blogumda var, yoksa okumadın mı ha!!!!’ diye yalandan celallenebileyim 🙂 Bu gençler olmasa biz neyle eğleneceğiz yahu.. Zend’de bir action’da siz başka bir şey zorlamadığınız müddetçe o action’ın adında bir view dosyası render etmeye çalışır sistem.. Mesela TestController’ında denemeAction()’ını varsa bu action çalıştırıldığında views/scripts/test klasörü altında deneme.phtml’i bulunur, render edilir ve layout dosyanız ne ise onun içine render edilmiş hali oturur. Controller’da view katmanına $this->view şeklinde erişilir. View’a bir değişken gönderilmek…

Zend Framework’de Veritabanı ile Routing

Zend’de routing listenizi -en azından bir kısmını- veritabanında tutmak istiyorsanız Bootstrap’da bu işi yapamıyorsunuz. Çünkü henüz bootstrap aşamasında veritabanına bağlanamıyorsunuz. Google’da aradım taradım, bazı öneriler gördüm ama çözemedim. Routing işine girmeden önce, artık kullanılmayan URL’ler için ErrorController’da db taraması yapıp doğru linke 301 (Permanently Moved) hatası ile yönlendiriyordum. $this->_helper->redirector->setCode(301); $this->_redirect($yenilink); Burada yönderme yapılıyor. Yani kullanıcı açısından tarayıcının url’i değişiyor. Ziyaretçi artık kullanmadığınız mesela http://falanca.com/filanca adresine girmek isterken siz onu http://falanca.com/yeniadres gibi bir adrese yönlendirmiş oluyorsunuz.Bu sırada 301 hatası verdiğiniz için aynı linke arama motorları da erişmek istediğinde 301 hatasını dikkate alıp arama sonuçlarını güncelleyebiliyorlar. O nedenle 301 önemli. Routing’de ise…

PHP ile MacOSx üzerinde mail gönderemiyorsanız

PHP ile MacOSx platformu üzerindeyken mail gönderemiyorsanız loglara bir göz atmalısınız. Eğer sendmail: fatal: chdir /Library/Server/Mail/Data/spool: No such file or directory gibi bir hata varsa çözüm gayet basit. Aşağıda yazılan ifadeleri sırasıyla çalıştırıp önce bu klasörü oluşturmalı, sonrasında mail gönderme sunucu yazılımı olan postfix’in bu klasörleri kullanabilmesi için gerekli ayarları yapmalısınız. sudo mkdir -p /Library/Server/Mail/Data/spool sudo /usr/sbin/postfix set-permissions sudo /usr/sbin/postfix start Hepsi bu kadar.. NOT: Eğer maillerinizi gmail üzerinden göndermek istiyorsanız şu yazıdaki ipuçlarını kullanabilirsiniz: http://www.zenddeveloper.com/how-to-send-smtp-mails-with-postfix-mac-os-x-10-8/

Slim ve MongoDB ile Api Denemeleri

Slim (Php framework) ve MongoDB nasıl kurulur başlı başına bir yazı konusu olduğu için başka bir zamanda değinmek üzere doğrudan örneklere geçiyorum. Api, “Application Programming Interface” ibaresini “Uygulama Programlama Arayüzü” diye doğrudan çevirince pek anlam ifade etmeyebilir. Uygulama ve programlama ülkemizde aynı anlama geliyor çoğu zaman. Uygulama; programlama ile yapılmış bir üründür. API’den anlamamız gereken şey ise uygulamaların programlanabilen arayüzleridir. Kabaca bir uygulamanın başka uygulamalarla nasıl iletişim kuracağını ifade eden kapılardır. Nerede kullanırız api’leri? Mesela Facebook’un PHP ve Javascript apileri vardır. Facebook’a PHP ve Javascript programları ile erişip izin verdiği ölçüde iletişim kurmamızı sağlıyor. Bu sayede kendi yazdığımız uygulamalar ile…

SEO uyumlu link

SEO yani arama motoru optimizasyonu için haber.php?id=110 gibi manasız bir link yerine haber/bugun-teknoparka-kar-yagdi gibi semantik yani kelime bakımından anlamlı linkler çok mühimdir. Google’da “teknopark” aratıldığında bu haber sayfasının çıkması için bu şekilde link vermek, alınacak SEO önlemlerinden biridir. SEO uyumlu linkler genelde içeriğin (haber, ürün, sayfa vs) orijinal başlığındaki Türkçe özel karakterler İngilizce benzerleriyle (ö yerine o gibi) değiştirilerek ve noktalama işaretleri kaldırılıp kelime aralarındaki boşluk yerine “-” (orta tire) konarak oluşturulur ve bu şekilde kaydedilir. Gerçi bunun bir kaç taklası var. Mesela haber.php?id=110#bugun-teknoparka-kar-yagdi demek de SEO için aynı etkiyi verir. Bu örnekte yine id önplandadır, haberin içeriği id ile…

Zend Framework Projenizi Host Etmek

Yıllardır işyerinde Zend Framework kullanıyorduk ve kendi sunucularımızda rahatlıkla projelerimizi host edebiliyorduk. Son projemizi Hostgator’dan aldığım bir sunucuda host etmek icab edince bir handikap ortaya çıktı. Zend Projeleri üç ana klasör içerir; application, library ve public. Projenin webe açık olan klasörü ise sadece public’dir, index.php dosyası public klasörünün altındadır. Diğer klasörlere webden doğruca erişilmeye ihtiyaç yoktur. Hostgator gibi firmalarda host ayarlarına müdahale etmek malesef mümkün olmadığından web dosyalarınızı size açılan hesaptaki “public_html” klasörüne koymak zorundasınız. Zend projelerindeki bu uyumsuzluğu gidermenin meğer basit bir yolu varmış. Şöyle yapılıyor: Zend projenizin ana dizinine index.php adıyla bir dosya oluşturun ve içerisine şu kodları…

Eclipse’de .tpl uzantıları php dosyası olarak kabul ettirmek

Eclipse’de .tpl uzantılı dosyaları doğrudan tıkladığınızda mac işletim sistemindeyseniz küçük not kağıtları şeklinde açılıyor. Sağ tıklayıp text editörle aç dediğinizde ise php highlighting yapmadan yani değişkenleri, fonksiyonları vs ayrı ayrı boyamadan açıyor ki işinizi oldukça zorlaştırıyor. Bu durumu düzeltmek için şu menüyü takip edip *.tpl formatını eklemek yeterli: Preferences / General / Content Types / Text / PHP Content Type

SVN ile çalışmanın dayanılmaz hafifliği…

SVN (Subversion) kaba bir tabirle sürekli güncellenen dosyalar için sürüm kontrol sistemi olarak ifade edilebilir. Başkaları nasıl kullanıyor bilmiyorum ama biz program geliştiricileri için hayat kurtarır mahiyettedir.

SVN ile proje dosyalarınızı güvenilir, yedekleri düzenli şekilde alınan bir sunucuda tutabilirsiniz. Çalışacağınız zaman bu dosyaların en güncel halini kendi bilgisayarınıza indirip gerekli güncellemeleri yapıp ilgili yorumlarınızla birlikte tekrar svn sunucunuza geri gönderebilirsiniz. Üstelik aynı projede çalışan birden çok kişi de kendi kullanıcı bilgileri ile bu işlemi yapabilir. Böylece kimin nereye ne şekilde ekleme çıkarma yaptığı gün, gün, saat saat bellidir. Dilediğiniz zaman dilediğiniz bir sürüme dönüş ya da inceleme yapabilirsiniz.

İşyerinde SVN ile çalışmak bizim için büyük bir nimet. Üzerinde kodlarınızı yazdığınız bilgisayarın başına herhangi bir iş gelse; disk bozulsa, virüs bulaşıp tüm dosyalarınız zarar görse üzülmeniz gereken tek şey sadece en son yazıp ‘commit’ etmediğiniz kısımlar olur ki genelde bunlar tüm projenin yanında oldukça az bir yer kaplar. Tabi bu kısımlar hayati kısımlar da olabilir ama, o zaman makinenize gözünüz gibi bakın ne diyeyim.

İşte bu rahatlığı evimde de kullanmak için uzun zamandır fırsat kolluyordum. İstediğim zaman erişebileceğim bir svn sunucum olsun istiyordum. Makinemi her formatladığımda sayıları giderek artan ve kontrolden çıkmaya başlayan proje yedeklerim için en iyi çözüm svn idi. Gerçi bu işi ücretli veya ücretsiz yapan başta Google ve SourceForge gibi onlarca site var fakat bilhassa bu saydıklarımda projeyi oluştururken ‘açık kod lisansınızı seçiniz’ şeklinde sorular sorulması beni işkillendirdi. Küçük de olsa ticari kodlarımın açık seçik olması taraftarı değilim. Aslında 3o küsür yaşında bir programcı olarak ‘açık kod’ nedir denince kafamda net bir cevap oluşması lazımdı ama malesef  yok.

MacPorts ile Apache2 ve PHP (MySQL-PostgreSQL destekli) kurulumu

Bir PHP geliştiricisi olarak uzun yıllar Windows tecrübesi yaşadıktan sonra artık aradığımı bulmuş ve Macos kullanmaya karar vermiştim. Bunun envai çeşit nedenini bir önceki yazıda zaten uzun anlatmıştım. Bu yazıda macos’da Apache ve PHP (MySQL-PostgreSQL destekli) kurulumundan bahsedeceğiz. Aslında Apache-PHP-MySQL için en pratik yol MAMP kurmak ama bu şekilde kurulan PHP’ye postgreSQL desteği vermek zor. Bunun için en iyi yöntem MacPorts kurmak.

Bilindiği üzere Macos aslında BSD tabanlı bir Unix işletim sistemidir. BSD’nin de en güzel özelliklerinden biri Ports denen bir yazılım kurma sistemi olmasıdır. Bu sistem sayesinde pek çok yazılımı sadece bir kaç komutla internetten indirip güncelleyebilirsiniz. İşte bu Ports sistemini Mac’e de uyarlamışlar ve adına MacPorts demişler.

MacPorts komut satırı (terminal) üzerinden çalıştırılan bir uygulama ama işletim sisteminize kurulu olarak gelmiyor. Bunun için bu sayfadan macos’unuza uygun olan dmg imajını öncelikle indirip kurmanız gerekiyor. Bizim sistemimiz Snow Leopard 1.6.3 olduğu için biz bu dosyayı indirip kurduk.