Kategori arşivi: PHP

PHP ile Twig Şablonlarını Veritabanında Çağırma

E-posta şablonları oluştururken Twig’in dinamik yapısı işinizi inanılmaz kolaylaştırıyor. Özellikle modeller arasındaki bağlantıları oluşturduysanız mükemmel şekilde kullanabiliyorsunuz.

Oluşturduğumuz array’leri veritabanında sakladığımız bir şablonu çağırarak, oldukça dinamik bir şekilde kullanımını sağlayabiliriz.

$template = 'Merhaba {{ name }}';
$data = ['name' => 'Hüseyin Yıldırım'];

$twig = new \Twig\Environment(new \Twig\Loader\ArrayLoader());
echo $twig->createTemplate($template)->render($data);

Macbook’unuzu OS X El Captain Yükselttiniz, Apache Server Çalışmıyor mu?

Telaş etmeniz gereken bir şey yok. El Captain güncellemesi ile birlikte Apache Server ve PHP yeni versiyonlarıda güncellenmiştir.

Daha önceki Mac OS X Apache Server’a php.ini Dosyasını Tanımlama makalemdeki kurulum adımlarını takip edebilirsiniz. Daha önceki php.ini ve httpd.conf gibi dosyalarınızda aynı dizinde ~previous uzantısı ile görebilirsiniz.

Mac OS X Apache Server’a php.ini Dosyasını Tanımlama

PHP ile geliştirdiğimiz web sitelerimizde bir çok PHP eklentisi kullanabiliriz ama bazı eklentiler default olarka pasif durmaktadır. Durumunu öürenmek için phpinfo() fonksiyonunu eklenediğiniz bir php sayfasından görebilirsiniz.

Screen Shot 2015-09-03 at 11.14.37 (2)

Eğer sizde php.ini tanımlı görünmüyorsa terminalimize bağlanıp herhangi bir yetkiye takılmamak için root kullanıcısına bağlanıyoruz.

sudo su -

ve şifremizi giriyoruz.

Benim versiyonumda php.ini dosyası /etc/ klasörü altında php.ini.default kayıtlıydı. İlk önce adını phpçini olarak değiştiriyoruz.

mv /etc/php.ini.default php.ini

php.ini dosyamızı tanıladıktan sonra geriye kalan istediğimiz extensions aktif etmektir. nano editörü ile php.ini dosyamızı açıyoruz.

nano /etc/php.ini

Aktifleştirmek istediğimiz extension önündeki yorum karakterini (;) siliyoruz.

;extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_fileinfo.dll
;extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_intl.dll
extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
;extension=php_mbstring.dll
;extension=php_exif.dll      ; Must be after mbstring as it depends on it
extension=php_mysql.dll
extension=php_mysqli.dll
;extension=php_oci8.dll      ; Use with Oracle 10gR2 Instant Client
;extension=php_oci8_11g.dll  ; Use with Oracle 11gR2 Instant Client
;extension=php_openssl.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll
extension=php_pgsql.dll

Yaptığımız değişiklerin aktif olması için Apache Server’i restart ediyoruz.

sudo apachectl restart

Mac OS X Üzerinde Apache Serveri Başlatmak

Apple PHP geliştiricilerini düşünerek Apache Server’i standart olarak kullanıcılara sunmaktadır ama default olarak servis çalışmamaktadır. Servisi aktif etmek sadece bir kaç dakikanızı almaktadır.

İlk önce terminali çalıştırıp herhangi bir permission hatasına takılmamak için root kullanıcısı ile giriş yapıyoruz.

sudo su -

ve şifremizi giriyoruz.

İlk önce kullanıcımıza Apache Server tarafından gerekli izinleri tanımlamak için /etc/apache2/users/Guest.conf dosyasının adını değiştiriyoruz. Sizin Mac OS X sürümünüze göre dosya yeri değişiklik gösterebilir, kontrol edin.

mv /etc/apache2/users/Guest.conf KULLANICI.conf

Adını değiştirdiğimiz dosya içinde bir kaç değişiklik yapmamız gerekiyor, aşağıdaki komut ile nano editörde dosyayı açıyoruz.

nano /etc/apache2/users/KULLANICI.conf

Açılan dosyayı kullanıcı adımıza ve web sitelerimizin bulunduğu klasöre düzenlememiz lazım.

<Directory "/Users/KULLANICI/ws/">
Options Indexes Multiviews
AllowOverride AuthConfig Limit
Order allow,deny
Allow from all
</Directory>

Gerekli düzenlemeyi yaptıktan sonra tek kalan Apache Server servisini başlatmak kalıyor.

sudo apachectl start

Şimdi tarayıcımıza http://localhost veya http://127.0.0.1 adresi ile Apache Serverimizin çalıştığını görebilirsiniz, ve “It Works!” 🙂

Debian Üzerine Apache + PHP + PostgreSQL Kurmak

Debian dağıtımınızı bir web servere dönüştürmek istiyorsanız gerekli olan Apache, PHP ve PosgtreSQL veya MySQL aşağıdaki komutlar ile kolaylıkla kurabilirsiniz.

PostgreSQL için:

sudo apt-get install php5-cli php5-curl postgresql-9.4 posgtresql-client-9.4 php5-pgsql apache2 php5

MySQL için:

sudo apt-get install php5-cli php5-curl mysql-server mysql-client php5-mysql apache2 php5

Kurmak istediğiniz diğer paketler için: https://www.debian.org/distrib/packages

Mac OS X Üzerinde PDO Drivers Kurulumu

Eğer PHP uygulamanızda Symfony framework kullanıyorsanız PDO driver kurmanız lazım. Kurmamanız halinde aşağıdaki gibi bir hatayla karşılaşacaksınız.

[[WARNING]] PDO has some drivers installed: : FAILED *** Install PDO drivers (mandatory for Propel and Doctrine) ***

Çözümü:

sudo port install php5-mysql

Kullanıdığınız paket yöneticinize göre komutu düzenlemeniz gerekmektedir.

Mac OS X Üzerinde Symfony Kurulumu ve Projeye Eklenmesi

PHP’ye geçmemin 2. gecesinde büyük bir aydınlanma geldi diyebilirim. Kullanacağım framework üzerinde araştırma yaparken ilginç makeler okudum diyebilirim ve neden laravel veya başka framework kullanmamam gerektiğine kanaat getirdim.

Sizde bu makaleyi okumanızı tavsiye ederim. http://aligundogdu.com/neden-laravel-kullanmiyorum/

Yii ve Zend haricinde Symfony favorim oldu diyebilirim ve kısaca kurulum ve projemize eklenmesinden bahsedeceğim.

Mac OS kurmak için terminalimize aşağıdaki komutları girmemiz yeterlidir.

$ sudo curl -LsS http://symfony.com/installer -o /usr/local/bin/symfony

$ sudo chmod a+x /usr/local/bin/symfony

Projemize dosyalarını eklemek için;

symfony new <path>

 

Mac OS X Üzerinde Apache Kurulumu

Mac OS üzerinde Apache kurmak neredeyse çocuk oyuncağı desek abartmış olmayız. Kurulum için aşağıdaki videoyu izleyiniz. Kurulumu MacPorts ile yapacağız. Eğer Macports kurulu değilse nasıl kuracağınızı buradan öğrenebilirsiniz.

Apache Komutları;

  • Başlatma:  sudo /opt/local/apache2/bin/apachectl start
  • Durdurma:  sudo /opt/local/apache2/bin/apachectl stop
  • Yeniden başlatma:  sudo /opt/local/apache2/bin/apachectl restart
  • Virtual host ayarı: sudo nano /opt/local/apache2/conf/extra/httpd-vhosts.conf
  • Apache ayarı: sudo nano /opt/local/apache2/conf/httpd.conf