From 34ca30a057b727d84f8b621395ebf7c8eebedf61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?An=C4=B1l=20=C3=9CNAL?= Date: Wed, 11 Dec 2013 14:30:43 +0200 Subject: [PATCH 1/8] Update 01-02-01-Use-the-Current-Stable-Version.md --- _posts/01-02-01-Use-the-Current-Stable-Version.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/01-02-01-Use-the-Current-Stable-Version.md b/_posts/01-02-01-Use-the-Current-Stable-Version.md index ce58bcd2d..f994fd2bd 100644 --- a/_posts/01-02-01-Use-the-Current-Stable-Version.md +++ b/_posts/01-02-01-Use-the-Current-Stable-Version.md @@ -5,7 +5,7 @@ isChild: true ## Güncel ve Tutarlı Sürümü Kullanın (5.5) {#guncel_ve_tutarli_surumu_kullanin_55_title} -PHP ile tanışmak istiyorsanız, tanışma sürecine güncel ve tutarlı sürüm olan [PHP 5.5][php-release] ile başlayın. PHP yıllardır gelişen [yeni özellikleri](#one_cikanlar) ile daha güçleniyor. 5.2 ve 5.5 sürümleri arasında ne kadar küçük fark varmış gibi görünsede çok _büyük_ geliştirmeler içermektedir. Eğer bir fonksiyonu arıyorsanız ya da nasıl kullanıldığını öğrenmek istiyorsanız [php.net][php-docs] sitesindeki belgeler size cevap verecektir. +PHP ile tanışmak istiyorsanız, tanışma sürecine güncel ve tutarlı sürüm olan [PHP 5.5][php-release] ile başlayın. PHP yıllardır gelişen [yeni özellikleri](#one_cikanlar) ile daha güçleniyor. 5.2 ve 5.5 sürümleri arasında ne kadar küçük fark varmış gibi görünsede çok _büyük_ geliştirmeler içermektedir. Eğer bir fonksiyonu arıyorsanız ya da nasıl kullanıldığını öğrenmek istiyorsanız [php.net][php-docs] sitesindeki belgeler size yardımcı olacaktır. [php-release]: http://www.php.net/downloads.php [php-docs]: http://www.php.net/manual/tr/ From 1861cc15c1d6b069f2e91de3b6c0f91b89d4f48d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?An=C4=B1l=20=C3=9CNAL?= Date: Wed, 11 Dec 2013 14:31:46 +0200 Subject: [PATCH 2/8] Update 01-03-01-Built-in-Web-Server.md --- _posts/01-03-01-Built-in-Web-Server.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/01-03-01-Built-in-Web-Server.md b/_posts/01-03-01-Built-in-Web-Server.md index 384e2d67c..3eb52f054 100644 --- a/_posts/01-03-01-Built-in-Web-Server.md +++ b/_posts/01-03-01-Built-in-Web-Server.md @@ -5,7 +5,7 @@ isChild: true ## Dahili Web Sunucusu {#dahili_web_sunucusu_title} -PHP kullanmaya herhangi bir web sunucusu kurmadan ve ayarlama yapmadan başlayabilirsiniz (PHP 5.4+ sürümü gereklidir). Dahili web sunucusunu başlatmak için aşağıdaki komutu, projenize ait dosyaların bulunduğu dizin içinde komut satırından çalıştırabilirsiniz: +PHP kullanmaya herhangi bir web sunucusu kurmadan ve ayarlama yapmadan başlayabilirsiniz. (PHP 5.4+ sürümü gereklidir) Dahili web sunucusunu başlatmak için aşağıdaki komutu, projenize ait dosyaların bulunduğu dizin içinde komut satırından çalıştırabilirsiniz: > php -S localhost:8000 From 5ae344da35ac087a47221c04d94ec8127e3d82fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?An=C4=B1l=20=C3=9CNAL?= Date: Wed, 11 Dec 2013 14:36:22 +0200 Subject: [PATCH 3/8] Update 01-04-01-Mac-Setup.md --- _posts/01-04-01-Mac-Setup.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_posts/01-04-01-Mac-Setup.md b/_posts/01-04-01-Mac-Setup.md index 914e4c71b..599e0bae1 100644 --- a/_posts/01-04-01-Mac-Setup.md +++ b/_posts/01-04-01-Mac-Setup.md @@ -5,13 +5,13 @@ isChild: true ## Mac (OSX) Kurulumu {#mac_osx_kurulumu_title} -OSX ile birlikte PHP zaten kurulu halde gelir fakat PHP sürümü güncel ve kararlı sürümden biraz eski olabilir. Lion PHP 5.3.6 ile geliyor. Mountain Lion ise 5.3.10 ile. +OSX ile birlikte PHP zaten kurulu halde gelmektedir fakat kurulu PHP sürümü güncel ve kararlı sürümden biraz eski olabilir. Örneğin, Lion PHP 5.3.6 versiyonu ile, Mountain Lion ise 5.3.10 versiyonu ile gelmektedir. OSX'de PHP'yi güncellemek için, bir dizi Mac [Paket Yöneticisi][mac-package-managers] ile paket edinebilirsiniz, [php-osx by Liip][php-osx-downloads] tavsiye edilir. -Diğer bir seçenek ise PHP'yi [kendinizin derlemesidir][mac-compile], Bu durumda ise Xcode ya da Apple's Mac Developer Center üzerinden ["Command Line Tools for Xcode"][apple-developer] aracının kurulu olduğuna emin olun. +Diğer bir seçenek ise PHP'yi [kendinizin derlemesidir][mac-compile]. Bu durumda ise Xcode ya da Apple'ın Mac Developer Center'ı üzerinden ["Command Line Tools for Xcode"][apple-developer] aracının kurulu olduğuna emin olun. -“Hepsi bir arada” olarak adlandırılabilecek, içerisinde PHP, Apache web sunucusu ve MySQL veritabanı sunucusu barındıran, bu servisleri kolay yönetmek için grafik kullanım arayüzü (GUI) bulunan [MAMP][mamp-downloads] uygulamasını da deneyebilirsiniz. +“Hepsi bir arada” olarak adlandırılabilecek, içerisinde PHP, Apache web sunucusu ve MySQL veritabanını barındıran, bu servisleri kolayca yönetmek için grafik kullanım arayüzü (GUI) bulunan [MAMP][mamp-downloads] uygulamasını da deneyebilirsiniz. [mac-package-managers]: http://www.php.net/manual/tr/install.macosx.packages.php [mac-compile]: http://www.php.net/manual/tr/install.macosx.compile.php From 09b1c0ade13c9ae1a32ea8de19a8f55da8bcbca8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?An=C4=B1l=20=C3=9CNAL?= Date: Wed, 11 Dec 2013 14:38:08 +0200 Subject: [PATCH 4/8] Update 01-05-01-Windows-Setup.md --- _posts/01-05-01-Windows-Setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/01-05-01-Windows-Setup.md b/_posts/01-05-01-Windows-Setup.md index 2a45e9825..1b0045f2a 100644 --- a/_posts/01-05-01-Windows-Setup.md +++ b/_posts/01-05-01-Windows-Setup.md @@ -5,7 +5,7 @@ isChild: true ## Windows Kurulumu {#windows_kurulumu_title} -PHP'nin Windows üzerinde kurulumu ile ilgili çeşitli yollar bulunmaktadır. ".msi" kurulum paketi olarak [indirebilirsiniz][php-downloads]. Bu kurulum dosyası PHP 5.3.0 dan sonra desteklememektedir. +PHP'nin Windows üzerinde kurulumu ile ilgili çeşitli yollar bulunmaktadır. ".msi" kurulum paketi olarak [indirebilirsiniz][php-downloads]. Bu kurulum dosyası PHP 5.3.0'dan sonra desteklenmemektedir. PHP'yi öğrenmek ve kendi makinenizde geliştirme yapmak için PHP 5.4+ ile birlikte gelen dahili sunucuyu kullanabilirsiniz. Ayarlar konusunda endişelenmenize gerek kalmaz. [Web Platform Installer][wpi], [Zend Server CE][zsce], [XAMPP][xampp] ve [WAMP][wamp] gibi herşey içinde bir araç kullanırsanız bu sizin için Windows geliştirme ortamının kurulması ve çalıştırılması için hız katacaktır. Eğer Windows üzerinde geliştirirken Linux üzerinde yayınlıyorsanız, bu araçlar (üretim) yayınlama aşamasından biraz farklı sonuçlar doğurabilir, bu konuda dikkatli olun. From 1b7298e6564c81792a3c283b186ed5a3417cb21b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?An=C4=B1l=20=C3=9CNAL?= Date: Wed, 11 Dec 2013 14:49:56 +0200 Subject: [PATCH 5/8] Update 01-06-01-Vagrant.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Vagrant kütüphanelerin değil uygulamaların aynı olması için. Kütüphaneler için package manager kullanılıyor. Ayrıca kafa karışıklığını önlemek için küçük bir örnek ekledim. --- _posts/01-06-01-Vagrant.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/_posts/01-06-01-Vagrant.md b/_posts/01-06-01-Vagrant.md index 262a30bcd..edd5ec61b 100644 --- a/_posts/01-06-01-Vagrant.md +++ b/_posts/01-06-01-Vagrant.md @@ -5,21 +5,21 @@ isChild: true ## Vagrant (Sanal Sunucu) {#vagrant_sanal_sunucu_title} -Geliştirme ortamı ile yayınlama ortamınız fakrlı ise projenizi yayınladığınızda farklı hatalar ile -karşılaşabilirsiniz. Bir takım ile çalışıyorken farklı geliştirme ortamlarında tüm kütüphanelerin aynı -sürümde veya güncel olabilmesi çok zorlaşıyor. +Geliştirme ortamı ile yayınlama ortamınız farklı ise projenizi yayınladığınızda farklı hatalar ile +karşılaşabilirsiniz. Bir ekip ile çalışırken, herkesin farklı geliştirme ortamlarında çalışması ve tüm uygulamaların aynı sürümde veya güncel olabilmesi çok zorlaşıyor. -Eğer Windows bir makinede geliştirme yapıp Linux bir makinede yayınlıyorsanız veya bir takım ile geliştiryorsanız, -sanal bir makine kurmayı düşünmelisiniz. Bu zor gelebilir, ama [Vagrant][vagrant] kullanarak basit birkaç adım +Eğer Windows bir makinede geliştirme yapıp Linux bir makinede yayınlıyorsanız veya bir ekip ile yazılım geliştiriyorsanız sanal bir makine kurmayı düşünmelisiniz. Bu ilk etapta zor gelebilir, ama [Vagrant][vagrant] kullanarak basit birkaç adım ile sanal bir makine kurabilirsiniz. Vargant üzerindeki temel box'lar elle ayarlanabilir, veya daha önceden kurulu bir vargant box'ınız varsa bunu yapmak için [Puppet][puppet] veya [Chef][chef] gibi "provisioning" yazılımları -kullanabilirsiniz. Provisioning, birbirleri ile özdeş birden fazla box kurulurken ve gerektiğinde silinirken, +kullanabilirsiniz. + +Provisioning, birbirleri ile özdeş birden fazla box kurulurken ve gerektiğinde silinirken, tekrarlanacak olan bir çok kurulum karmaşasından korunmak için güzel bir yöntemdir. Bir box'ı silebilir ve -hiçbir manuel yöntem kullanmadan tekrar oluşturabilirsiniz, güzel bir kurulumu size sağlar. +hiçbir manuel yöntem kullanmadan tekrar oluşturabilirsiniz. Bu güzel ve sorunsuz bir kurulumu size sağlar. + +Vargant, projenizi local sunucunuz ve oluşturduğunuz sanal makine ile paylaşmanız için paylaşımlı bir klasör oluşturur. Bunun yararı, siz local sunucunuzda kodlarınızı yazarken, projenizin sanal sunucunuzda çalışmasına imkan tanımasıdır. -Vargant kodlarınızı sunucu ya da sanal makine ile paylaşmanız için paylaşımlı bir klasör oluşturur. Bunun anlamı -siz sunucu makinede dosyalar yaratabilir ya da editleyebilirsiniz ve sonra sanal makinede bu kodları -çalıştırabilirsiniz. +Bunu ufak bir örnekle açıklayalım. Farzedelim ki siz Windows tabanlı sunucunuzda kendi IDE veya Text editörünüzü kullanarak bir proje geliştiriyorsunuz. PHP, MySQL gibi araçlar ise linux sanal sunucunuzda kurulu. Proje klasörünüzü Vagrant'ın paylaşım klasörü olarak ayarlarsanız, windows ortamında geliştirmeye devam edip, çalıştırma işlemini sanal sunucu üzerinde yapabilirsiniz. O klasör iki yönlü ve senkron olarak çalışacaktır. [vagrant]: http://vagrantup.com/ [puppet]: http://www.puppetlabs.com/ From 5c33e7b1da1e4aac3cc535a892ca329633521616 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?An=C4=B1l=20=C3=9CNAL?= Date: Wed, 11 Dec 2013 15:00:05 +0200 Subject: [PATCH 6/8] Update 02-01-01-Code-Style-Guide.md --- _posts/02-01-01-Code-Style-Guide.md | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/_posts/02-01-01-Code-Style-Guide.md b/_posts/02-01-01-Code-Style-Guide.md index 0b733f09c..6daa1d816 100644 --- a/_posts/02-01-01-Code-Style-Guide.md +++ b/_posts/02-01-01-Code-Style-Guide.md @@ -4,11 +4,11 @@ title: Kodlama Stili Rehberi # Kodlama Stili Rehberi {#kodlama_stili_rehberi_title} -PHP topluluğu geniş ve çeşitlidir, sayısız kütüphane, framework ve bileşenlerden oluşur. Bunlardan birkaçını seçip herhangi bir projede kullanmak PHP geliştiricileri için doğaldır. PHP kodlarında genel bir stile uymak, farklı ve çeşitli kütüphaneleri kullanmak ve karşılaştırmak açısından geliştiriciler için önemlidir. PHP kodunun genel kod stiline olabildiğince uyması gerekiyor ki geliştiriciler kolaylıkla farklı kütüphaneleri karıştırıp eşleştirebilsinler. +PHP topluluğu geniş ve çeşitlidir. Sayısız kütüphane, framework ve bileşenlerden oluşmaktadır. Bunlardan birkaçını seçip herhangi bir projede kullanmak PHP geliştiricilerinin sıklıkla kullandığı bir yöntemdir. PHP kodlarında genel bir stile uymak, farklı ve çeşitli kütüphaneleri sorunsuz kullanmak açısından son derece önemlidir. PHP kodunun genel kod stiline olabildiğince uyması, geliştiricilerin kolaylıkla farklı kütüphaneleri kullanabilmesine olanak tanır. -[Framework Interop Group][fig] (daha önce 'PHP Standards Group' olarak bilinen) çeşitli kodlama standartları önerilerinde bulunmuş ve [PSR-0][psr0], [PSR-1][psr1] ve [PSR-2][psr2] olarak bilinen standartları kabul etmiştir. Kabul edilmiş olan bu standartlar Drupal, Zend, Symfony, CakePHP, phpBB, AWS SDK, FuelPHP ve Lithium gibi büyük projelerde kullanılmaya başlanmıştır. Bunları kendi projelerinizde kullanabilirsiniz veya kendi kodlama stilinizi ve standartlarınız ile devam edebilirsiniz. +[Framework Interop Group][fig] (daha önce 'PHP Standartları Grubu' olarak bilinen) çeşitli kodlama standartları önerilerinde bulunmuş ve [PSR-0][psr0], [PSR-1][psr1] ve [PSR-2][psr2] gibi standartları kabul etmiştir. Kabul edilmiş olan bu standartlar Drupal, Zend, Symfony, CakePHP, phpBB, AWS SDK, FuelPHP, Laravel ve Lithium gibi birçok büyük projelerde kullanılmaya başlanmış ve desteklenmiştir. Bu standartları dilerseniz kendi projelerinizde kullanabilirsiniz veya kendi kodlama stiliniz ve standartlarınız ile devam edebilirsiniz. -Diğer geliştiricilerin yazdığınız kodu daha kolay okuyup anlamaları ve üzerinden çalışabilmeleri için bu standartlardan bir veya daha fazlasına uygun kod yazmalısınız, bunlar PSR'nin standartları ya da PEAR veya Zend'in standartları olabilir. Üçüncü partiler tarafından hazırlanmış kodlarla çalışırken birçok bileşenden oluşan uygulamalar birbiri ile daha uyumlu olabilir. +Diğer geliştiricilerin yazdığınız kodu daha kolay okuyup anlamaları ve üzerinden çalışabilmeleri için bu standartlardan bir veya daha fazlasına uygun kod yazmalısınız. Bunlar PSR'nin standartları ya da PEAR veya Zend'in standartları olabilir. Üçüncü partiler tarafından hazırlanmış kodlarla çalışırken birçok bileşenden oluşan uygulamalar birbiri ile daha uyumlu olabilir. * [PSR-0 hakkında][psr0] * [PSR-1 hakkında][psr1] @@ -16,11 +16,9 @@ Diğer geliştiricilerin yazdığınız kodu daha kolay okuyup anlamaları ve ü * ["PEAR Coding Standards" hakkında][pear-cs] * ["Zend Coding Standards" hakkında][zend-cs] -[PHP_CodeSniffer][phpcs] kullanarak yazdığınız kodları bu standartlardan herhangi birine karşı kodunuzu kontrol etmek için kullanabilirsiniz [Sublime Text 2][st-cs] gibi bir editör eklentisi ile gerçek zamanlı geribildirimler alabilirsiniz. -Fabien Potencier tarafından hazırlanan [PHP Coding Standards Fixer][phpcsfixer] uygulamasını kullanarak kodlarınızın bu standartlara uygun olarak otomatik düzeltilmesini sağlayabilirsiniz. - -İngilizce dili kod içinde bulunan değişken, sabit, fonksiyon, yordam gibi semboller ve yapılara ait isimlendirmelerde tercih edilir. Yorumlar için ise şu anda ve gelecekte kodlar üzerinde uğraşacak kişilerin anlayabileceği bir dil tercih edilebilir (Örneğin; proje ekibinde yabancı veya Türkçe bilmeyen bir eleman varsa Türkçe yerine İngilizce tercih etmeniz daha uygun olur). +[PHP_CodeSniffer][phpcs] eklentisini kullanarak yazdığınız kodların bu standartlardan herhangi birine uyumlu olup olmadığını kontrol edebilirsiniz. [Sublime Text 2][st-cs] gibi bir editörde ise bu konuda gerçek zamanlı geribildirimler alabilirsiniz. Ayrıca, Fabien Potencier tarafından hazırlanan [PHP Coding Standards Fixer][phpcsfixer] uygulamasını kullanarak kodlarınızın bu standartlara uygun şekilde otomatik olarak düzeltilmesini sağlayabilirsiniz. +İngilizce, kod içinde bulunan değişken, sabit, fonksiyon, yordam gibi semboller ve yapılara ait isimlendirmelerde tercih edilmektedir. Yorumlar için ise şu anda ve gelecekte kodlar üzerinde uğraşacak kişilerin anlayabileceği bir dil tercih edilmelidir. Örneğin, proje ekibinde Türkçe bilmeyen bir eleman varsa, yorum satırlarını Türkçe yerine İngilizce yazmanız daha doğru olacaktır. [fig]: http://www.php-fig.org/ [psr0]: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md From a7e3035012e61134e9c1878b4ee30a50d909a215 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?An=C4=B1l=20=C3=9CNAL?= Date: Wed, 11 Dec 2013 15:10:00 +0200 Subject: [PATCH 7/8] Update 03-02-01-Programming-Paradigms.md --- _posts/03-02-01-Programming-Paradigms.md | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/_posts/03-02-01-Programming-Paradigms.md b/_posts/03-02-01-Programming-Paradigms.md index cc1b06b84..b99dcba31 100644 --- a/_posts/03-02-01-Programming-Paradigms.md +++ b/_posts/03-02-01-Programming-Paradigms.md @@ -5,31 +5,26 @@ isChild: true ## Programlama Yaklaşımları {#programlama_yaklasimlari_title} -PHP çeşitli programlama tekniklerini destekleyen esnek ve dinamik bir dildir. -Özellikle PHP 5.0 ile katı bir nesne tabanlı model eklenerek (2004), PHP 5.3 de "anonymous functions" ve "namespaces" -(2009) ve PHP 5.4'de "traits" ekleyerek yıllar içerisinde önemli ölçüde gelişti. +PHP çeşitli programlama tekniklerini destekleyen esnek ve dinamik bir dildir. Özellikle PHP 5.0 ile katı bir nesne tabanlı model eklenmiş (2004), PHP 5.3 de "anonymous functions" ve "namespaces" (2009) desteği gelmiş ve PHP 5.4'de "traits" özelliği eklenerek yıllar içerisinde PHP, nesne tabanlı programlama konusunda kendisini önemli ölçüde geliştirmiştir. ### Nesne Tabanlı (Nesneye Dayalı) Programlama PHP, nesne tabanlı programlamanın "class", "abstract class", "interfaces", "inheritance", "constructors", "cloning", -"exception" ve daha fazlası bütün özelliklerini içermektedir - +"exception" özellikleri ve daha fazlasını içermektedir. * [Nesne tabanlı programlama hakkında][oop] * [Trait'ler hakkında][traits] ### Fonksiyonel Programlama -PHP, bir fonskiyonun bir değişkene atandığı "first-class" fonksiyonu, desteklemektedir. Kullanıcı tanımlı ve dahili -fonksiyonların ikiside bir değişkene referans edilebilir ve dinamik olarak çağırılabilir. Fonksiyon bir diğer fonksiyona -parametre olarak gönderilebilir (bu özellik "High-order functions olarak bilinir.") veya bir fonksiyondan geri döndürülebilirler. +PHP, bir fonskiyonun bir değişkene atandığı "first-class" fonksiyonu desteklemektedir. Kullanıcı tanımlı ve dahili +fonksiyonların ikiside bir değişkene referans edilebilir ve dinamik olarak çağırılabilir. Fonksiyon bir diğer fonksiyona parametre olarak gönderilebilir (bu özellik "High-order functions olarak bilinir.") veya bir fonksiyondan geri döndürülebilir. -Özyineleme (recursion), kendi kendini çağıran fonksiyon desteklenen bir özelliktir, ama bir çok PHP kodu iterasyona odaklanmaktadır. +Özyineleme (recursion), kendi kendini çağıran fonksiyon desteklenen bir özelliktir, ama bir çok PHP kodu iterasyona (iteration) odaklanmaktadır. -Yeni anonymous fonksiyonları (closures için desteklenmektedir) PHP 5.3 ile gelmektedir. (2009) +Yeni anonim fonksiyonlar (closures) PHP 5.3 ile gelmiştir. (2009) -PHP 5.4 added the ability to bind closures to an object's scope and also improved support for callables such that they -can be used interchangeably with anonymous functions in almost all cases. +PHP 5.4, closurelerin bir nesnenin scope'u içine bindlenmesi özelliğini getirmiş, ayrıca callable desteğini geliştirmiştir. Artık neredeyse callables ve closures neredeyse tüm durumlarda değişmeli olarak kullanılabilmektedir. * [PHP'de Fonksiyonel Programlama hakkında](/php-the-right-way/pages/Functional-Programming.html) * ["Anonymous Functions" hakkında][anonymous-functions] @@ -40,10 +35,10 @@ can be used interchangeably with anonymous functions in almost all cases. ### Meta Programlama -PHP, Reflection API ve Sihirli Yöntemler (Magic Methods) gibi bazı meta programlama mekanizmalarını destekler. +PHP, Reflection API ve Sihirli Yöntemler (Magic Methods) gibi bazı meta programlama mekanizmalarını destekler. PHP'de `__get()`, `__set()`, `__clone()`, `__toString()` ve `__invoke()` gibi Sihirli Yöntemler bulunmaktadır. Bunlar geliştiriciye sınıfların davranışlarını değiştirmelerine izin verirler. Ruby geliştiricileri genellikle -PHP'de `method_missing`in eksik olduğunu söylerler, ancak bu `__call()` ve `__callStatic()` olarak mevcuttur. +PHP'de `method_missing`in (Çağırılan methodun olmaması durumu) eksik olduğunu söylerler. Ancak PHP bunu `__call()` ve `__callStatic()` Sihirli Yöntemlerini kullanarak desteklemektedir. * [Sihirli yöntemler hakkında][magic-methods] * [Reflection hakkında][reflection] From 7a99d9fe36fa48b45dd24cca35f65975e3cd0585 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?An=C4=B1l=20=C3=9CNAL?= Date: Wed, 11 Dec 2013 15:16:09 +0200 Subject: [PATCH 8/8] Update 03-03-01-Namespaces.md --- _posts/03-03-01-Namespaces.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/_posts/03-03-01-Namespaces.md b/_posts/03-03-01-Namespaces.md index 0c695bb00..6bde2d341 100644 --- a/_posts/03-03-01-Namespaces.md +++ b/_posts/03-03-01-Namespaces.md @@ -5,13 +5,13 @@ isChild: true ## İsim Uzayları (Namespaces) {#isim_uzaylari_namespaces_title} -Daha öncede bahsedildiği üzere, PHP topluluğu bir sürü geliştiriciden oluşmaktadır. Bu nedenle bazı durumlarda bir kaç farklı kütüphane aynı isimde kullanılmış olabilir. İki kütüphane aynı isim uzayında olduğunda çakışırlar ve bu da soruna neden olur. +Daha öncede bahsedildiği üzere PHP topluluğu bir sürü geliştiriciden oluşmaktadır. Bu nedenle bazı durumlarda bir kaç farklı kütüphane aynı isimde kullanılmış olabilir. İki kütüphane aynı isim uzayında oldukları zaman çakışırlar ve bu da fatal error gibi sorunlara veya exceptionlara neden olur. -_İsim uzayları_ bu sorunu çözer. PHP referans kılavuzunda da açıklandığı gibi, isim uzayları işletim sistemlerindeki klasörler ile karşılaştırılabilir; aynı isimdeki iki dosya fakrlı dizinlerde bulunabilir. Aynı şekilde, aynı isimdeki iki sınıf farklı isim uzaylarında bulunabilir. Bu kadar basit. +_İsim uzayları_ bu sorunu çözmektedir. PHP referans kılavuzunda da açıklandığı gibi, isim uzayları işletim sistemlerindeki klasörler ile karşılaştırılabilir. Aynı isimdeki iki dosya nasıl farklı klasörlerde bulunabilirsa, aynı şekilde aynı isimdeki iki sınıf farklı İsim Uzayları altında aynı isimde bulunabilmektedir. -Diğer geliştiricilerin geliştirdiği kütüphaneler ile çakışma korkusu olmadan geliştirme yapabilmeniz adına isim uzaylarını kullanmak sizin için iyi olabilir. +Diğer geliştiricilerin geliştirdiği kütüphaneler ile çakışma korkusu yaşamadan geliştirme yapabilmeniz için isim uzaylarını kullanmak sizin yararınıza olacaktır. -[PSR-0][psr0] isim uzayları konusuna değinilmiştir ve birbiri ile uyumlu (plug-and-play code) standart dosya, sınıf ve isim uzayı düzeni kurmayı amaçlamaktadır. +[PSR-0][psr0] İsim Uzayları konusuna değinmiştir ve birbiri ile uyumlu (tak-ve-kullan kod) standart dosyalar, sınıflar ve isim uzayları düzeni kurmayı amaçlamaktadır. * [İsim Uzayları hakkında][namespaces] * [PSR-0 hakkında][psr0]