Developersland

Teknoloji ve Yazılım Blogu

  • Yazıtipi boyutunu arttır
  • Varsayılan yazıtipi boyutu
  • Yazıtipi boyutunu azaltır
Php

Composer Kullanımı

Öncelikle ihtiyaç duyduğumuz kütüphanelerin ve namespacelerimizin tanımlı olduğu composer.json dosyamızı oluşturuyoruz.


{

    "require": {

        "twig/twig": "1.12.0-RC1",

        "doctrine/dbal": "2.3.2"

    },

    "autoload": {

        "psr-0":{

		             "src": "",

		             "app": ""

	}

    }

}



Daha sonra şu komutları çalıştıralım:


curl -s https://getcomposer.org/installer | php

php composer.phar self-update

php composer.phar install


vendor klasörü içerisinde bulunan autoload.php dosyasını projemizin index.php dosyası içerisinde require ederek kullanabiliriz artık.






 

PhpDocumentor Kurulumu

Merhaba, PhpDocumentor kurulumu yaparken izlemeniz gereken adımları açıklayacağım. Öncelikle wamp kullandığımı belirtmek istiyorum. Belirttiğim adımlar sizde çalışma ortamınıza bağlı olarak farklılıklar gösterebilir.


1)php.ini içerisinde xsl eklentisini aktif etmek gerekiyor: extension=php_xsl.dll

2)http://graphviz.org/ adresinden graphviz kurmanız gerekiyor.

Konsoldan aşağıdaki komutları giriniz.

3)pear channel-discover pear.phpdoc.org

4)pear install phpdoc/phpDocumentor-2.0.0a12

En son versiyonun ne olduğuna buradan bakınız: http://pear.phpdoc.org/

Muhetemel hata

Could not open input file: phpdoc.php  hatası alırsanız C:\wamp\bin\php\php5.3.10 burada bulunan phpdoc.php dosyasını pear klasörünün içerisine atınız.

Bu da sorunu çözmezse phpdoc.bat dosyasını phpdoc.php dosyasını görecek şekilde düzenlemek gerekmektedir


@echo off
if "%PHPBIN%" == "" set PHPBIN=php.exe
if not exist "%PHPBIN%" if "%PHP_PEAR_PHP_BIN%" neq "" goto USE_PEAR_PATH
GOTO RUN
:USE_PEAR_PATH
set PHPBIN=%PHP_PEAR_PHP_BIN%
:RUN
"%PHPBIN%" "C:\wamp\bin\php\php5.3.10\phpdoc.php" %*



 

PHP Güvenlik 3

Session Güvenliği

php güvenlikSession içerisinde çok önemli bilgiler tutulduğundan session güvenlik açısından çok önemlidir. Session verilerinin sunucu tarafında tutulması güvenlik açısından içimizi rahatlatan en önemli faktördür.

SSL kullanımını etkinleştirmek server ve client arasındaki veri akışının daha güvenli bir biçimde sağlanması açısından önemlidir. SSL sayesinde bütün HTTP istek ve yanıtları korumalı bir şekilde aktarılır.

Güvenlik kalkanınızı biraz daha güçlendirmek isterseniz session içerisine yazılacak verileri şifreleyerek yazmayı tercih edebilirsiniz. Böylece session içerisindeki veriler şifrelemeyi çözecek anahtar olmadan okunamaz. Şifreleme işi session_set_save_handler( )  fonksiyonu yardımıyla yapılabilir.

Session değişkenini her seferinde yeniden üretmek de saldırganın işini zorlaştıracaktır


 

PHP Güvenlik 2

php güvenlik

Web uygulamaları genellikle dışarıdan verileri formlar aracılığıyla alır. Bu nedenle güvenlik açısından en çok dikkat edilmesi gereken yert formlardır. Kullanıcı verileri GET, POST veya HTTP HEADER (örn: Cookieler ) ile gönderebilir.


Kullanıcıdan bir belge yüklenmesi isteniyorsa, sunucu tarafında belgenin belli bir büyüklükte olmasına dair kontrol yapılmalıdır. Php nin is_uploaded_file() fonksiyonu kullanılarak bu belgenin gerçekten yüklenip yüklenmediğini kontrol etmek mantıklı olabilir. Aşağıdaki gibi bir kod parçasıyla gerekli kontrolü yapabiliriz


 

PHP Güvenlik 1

güvenlikPhp ile kod yazarken dikkat etmeniz gereken güvenlik önlemleri ile ilgili aldığım notları birkaç bölüm halinde aktarmaya çalışacağım.

Sistemde herhangi bir hata mesajının kullanıcılara gösterilmesi ciddi bir güvenlik açığıdır. Bütün hata mesajları log dosyalarına yazılmalıdır.Hata mesajlarının güvenlikle ilgili ciddi açıklara neden olabilecek bilgiler yer alabilir. Aşağıdaki kodları kullanarak hataların loglara yazılması sağlanabilir. Ayrıca kritik bilgiler içerebilecek olan hata mesajlarının kullanıcılara gösterilmesinin önüne geçmiş olursunuz.

 

ini_set('error_reporting', E_ALL | E_STRICT);
ini_set('display_errors', 'Off');
ini_set('log_errors', 'On');
ini_set('error_log', '/usr/local/apache/logs/error_log');




Hata durumlarında çalıştırılmak üzere özel fonksiyonlarımızı yazabiliriz. Bu fonksiyonların hata esnasında çalışması için şu şekilde bir kod yazılabilir.


set_error_handler('my_error_handler');


 

PHPUnit ile Test Güdümlü Geliştirme (Test Driven Development)


phpunitBu yazımda PHPUnit ile nasıl unit testler yazabileceğimizi anlatacağım. Bu yazıyı okumaya başlamadan önce test güdümlü geliştirme ile ilgili yazdığım yazıyı okumanızı öneriyorum. Yazıya buradan ulaşabilirsiniz.

Ben Sebastian Bergmann tarafından yazılmış olan phpunit frameworkünü kullanıyorum. Genel olarak bu framework'ün bu alanda kullanılan en popüler framework olduğunu söyleyebilirim.

PHPUnit kurulumu yapmanın en basit yolu pear yardımıyla kurulum yapmaktır. Sisteminizde pear bulunmuyorsa öncelikle pear kurmanız gerekmektedir.

 

Test Driven Development (Test Güdümlü Geliştirme)


test güdümlü geliştirmeSon birkaç gün içerisinde Test güdümlü geliştirme ile tanıştım. Daha önce bu kavramı duymuş olmama rağmen bir türlü araştırma fırsatım olmamıştı. Nihayet araştırma fırsatım oldu ve bu metodolojiyi gerçekten çok sevdim. Test Güdümlü Geliştirme dendiğinde bir yazılımcı olarak bana ilk başta garip gelen "Önce test sonra kod yazma" kavramıyla tanıştım. İlk duyduğunuzda size zaman kaybı gibi gelebilir nitekim bana da öyle gelmişti ve bu konuyla ilgili internette çok değerli yazılımcılar tarafından yazılmış çeşitli makaleler okudum. Bütün yazılan yazılardaki ana fikir test güdümlü geliştirmenin kesinlikle zaman kaybı olmadığı ve uzun vadede kodumuzda herhangi bir değişiklik yapacağımız zaman size inanılmaz derecede zaman kazandıracağı yönündeydi. Test güdümlü geliştirme yaparken her bir sınıfımız için ayrı ayrı public metodları test eden unit testler yazarız ve kodlarımız düzgün çalışıyorsa bütün unit testlerden başarıyla geçecektir. Uzun bir zaman sonra kodumuz üzerinde değişiklikler yapmamız gerektiğinde, yazılımcılar olarak kendi yazdığımız koda karşı bile yabancılık çekeriz. Durum böyle olunca yapacağımız değişiklikler sistemde daha sonra nedenini saatlerce araştıracağımız hatalara yol açabilir. Unit testlerimiz sayesinde böyle bir durumun önüne geçmemiz mümkündür. Kodumuzda herhangi bir değişiklik yaptığımızda unit testlerimizi çalıştırırız ve eğer herhangi bir şeyi bozmuşsak anında bunu tespit etme ve düzeltme şansımız olur. Böylece saatlerimizi kodumuzu debug etmekle geçirmez ve daha mutlu bir yazılımcı oluruz. Yazılım alanındaki en büyük ustalardan birisi olan Martin Fowler'in bu konuyla ilgili söylediği bir söz çok önemlidir.

 

Php JSON Türkçe Karakter Problemi

Arkadaşlar 1 saat kadar aradım internette çözümü daha sonra çok basit bir çözüm buldum:

utf8_encode();

fonksiyonunu kullanarak jsona göndereceğiniz değerleri utf-8 formatına uygun hale getirin.

 

Zend Framework 2 Tutorial

zend framework 2Bu tutorial Php 5.3.10 versiyonu kullanılarak hazırlanmıştır. Zend Framework 2 kullanımını anlamak amacıyla örnek bir albüm uygulaması geliştireceğiz. Öncelikle projemizi ayağa kaldırmamız gerekiyor. Bunun için daha önce yazdığım Zend Framework 2 projenin ayağa kaldırılması isimli yazımı okuyabilirsiniz. zend Framework 2 MVC tasarım şablonunu kullanmaktadır bu nedenle size önerim MVC tasarım şablonuyla ilgili biraz ön bilgi edinmenizdir.
Örnek Projeyi buradan indirebilirsiniz.

Projemizi ayağa kaldırdıktan sonra artık örnek uygulamamızı geliştirmeye başlayabiliriz. Projemizde 4 işlem gerçekleştirmeye çalışacağız. Bunlar:

  • Albümlerin Listelenmesi

  • Yeni Albüm Ekleme

  • Albüm Düzenleme

  • Albüm Silme


 

PHP Netbeans IDE de otomatik Getter, Setter ve Constructor üretme

netbeans ideIDE'nizde otomatik getter ve setter üretme özelliği olmayınca bunları tek tek yazmak size oldukça fazla zaman kaybettirir. Netbeans IDE de bu özellik bulunuyor. ALT+INSERT yaparak getter, setter ve constructor metodlarının otomatik olarak üretilmesini sağlayabilirsiniz. Ayrıca eğer sınıfınız başka bir sınıfı extend etmişse bu sınıfın bazı metodlarını yine aynı yöntem ile override edebilirsiniz.

 
  • «
  •  Başlangıç 
  •  Önceki 
  •  1 
  •  2 
  •  Sonraki 
  •  Son 
  • »


Sayfa 1 / 2