Her PHP programcısı ne bilmeli?

21 Cevap php

Ben bir PHP / MySQL programcı olmak istiyorum

Ben bilmeniz gerekir teknolojiler nelerdir?

Gibi:

  1. Altyapıları
  2. IDE
  3. Şablon Motorlar
  4. Ajax and CSS Altyapıları

Bana bilmeniz gerekir minimum gereksinimleri söyle, ve, önceki listede bana en sevdiğiniz şeyleri söyleyin lütfen?

Teşekkürler

21 Cevap

Öncelikle, no ... Hiçbir şey bilmeden içine gidin, ve bir demet bilerek onu dışarı geleceğiz PHP ve MySQL öğrenme hakkında bilmeniz gereken vardır. Bir bilmeniz gereken varsa, o zaman kimse PHP ve MySQL geliştirme içine almak mümkün olacaktır. Ben şahsen bu konuda her şeyi bilmeden bu girmeden hafif bir avantaj olduğunu düşünüyorum. Size taze bir bakış açısı ve kutu tutum dışında düşünmek vereceğim :)

Bildiğim kadarıyla bu thread nesne yönelimli şeyler gibi, bu doğru. Diğerleri söylediler Fakat, bu kod yazmak nasıl karar programcı (siz) kadar tamamen bulunuyor. Sen sadece sağ bir grup işlev, veya ne olursa olsun, nesne yönelimli uygulamaları kullanmak bir spagetti kod kavşak yapmak, ya da olabilir. Herkes söyleyerek edildiği gibi iki şekilde de, o size kalmış :)

IRC channel:

Gerçekten bu ihtiyaç, ama faydalı ... burada görüşürüz bulmuyorum :)

irc.freenode.net # php

Manual:

Manuel arkadaşınız ve should içeri dalış önce bilmeniz muhtemelen tek şey

http://www.php.net/manual/en/

http://dev.mysql.com/doc/refman/5.0/en/apis-php.html

Frameworks:

Bir MVC framework emin olun :)

http://www.cakephp.org/

http://www.phpmvc.net/

http://www.codeigniter.com/

http://www.symfony.com/

IDE:

Size en uygun ne olursa olsun :)

http://www.eclipse.org/

http://www.vim.org/

http://www.zend.com/en/products/studio/

http://php.netbeans.org/

Template engines:

PHP iyi bir şablon motorudur

Model View Controller çerçeveler bu konuda yardımcı

Ajax:

http://jquery.com/

http://www.mootools.net/

http://developer.yahoo.com/yui/

http://www.prototypejs.org/

http://www.extjs.com/

http://code.google.com/webtoolkit/

CSS:

http://www.yaml.de/en/home.html

http://code.google.com/p/blueprintcss/

http://developer.yahoo.com/yui/reset/

Kesinlikle bir liste, ve işler sürekli değişim ... Ama, bu bir başlangıç ​​:)

Eğlenin!

Chrelad

Güvenlik her web programcısı internette kamuya erişilebilir kod yayınlamak için izin verilmeden önce incelemek gereken önemli bir konudur.

Güvenlik konularında örnekler:

Bildiğiniz ve PHP uygulamaları yazarken akılda tutmalı daha fazla güvenlik sorunları bulunmaktadır. Web sitesi http://www.owasp.org yararlı sürü içeren information yardım etmek.

Her PHP programcısı ne bilmeli?

PHP bir dili bilmek gerekir. Ben aslında bunun için gerçekten çok iyi, PHP sizin siteleri geliştirmek gerektiğini söylemiyorum, ama gerçekten bazı perspektif almak için en az bir yabancı dil bilmek gerekir.

Neden? PHP kırık ve kötü tasarım ve misfeatures doludur. PHP mükemmel kod yazabilirsiniz, ama sen daha iyi biliyorsun yoksa kötü tasarım ve PHP kendisi hatalarını nokta mümkün olacak asla ediyoruz.

Ben Python, Ruby ya da C # öneririm

PS: Bu yararlı bir öneri olduğunu düşünmüyorum, o zaman elbette bu cevabı downmod, ancak PHP kırık ve kötü tasarlanmış olduğu iddiamla hakaret hissediyorum çünkü downmodding ise, elçiye zeval olmaz ben 'sadece gerçeği söylüyorum!

PHP 10 yıl önce ilk işim bir ofis junior olarak çalışırken ben tarafında öğrendim benim ilk dil oldu. İşte benim deneyimlerinden bazı şeyler olduğunu:

  • Download the PHP manual, print it off, and start reading from page one. Keep going till you're at the end. muhtemelen (KADM5 veya Hyperwave kullanmak gibi) ihtiyacınız olmayacak ama PHP (bu yeniden icat tekerlek çalışırken sizi kurtaracak) yeteneğine ne olduğunu biliyorum her zaman tanıtımları okumak bitleri üzerinde Skim . PHP belgelerine ben su dışarı beri birlikte çalıştığım hemen-hemen her diğer dilin dokümanlar darbeler.
  • Sonraki adım; set up PHP. Manually. XAMPP ya da başka bir şey kullanmayın, do it yourself. Her zaman ortam kurmak bilmek olur.
  • Don't bother with an IDE başında. Bir dil bilmek kalkarken-yakın-ve-kişisel almak anlamına gelir. Eğer ne yaptığınızı biliyor ve hedef ortamı biliyorum harika çalışıyor, ama başlangıç ​​yaparken onlar sadece şekilde almak ve neyin önemli gizlemek için GetThingsDone yardım etmek için bir girişim IDE belirsiz şeyler.
  • Don't bother with frameworks başlangıcında, her iki. Yine, onlar size ilk etapta ne yaptığınızı biliyorsanız, yalnızca çalışır size GetThingsDone yardım için oradayız. Aksi takdirde framework olup PHP öğrenme olacak, temelleri ile başlayın.
  • PHP is essentially an advanced templating engine. Aşırı sinirli "PHP çiftleşmiş motor" tuzağına düşmeyin. Onlar sadece işin üzerinde iki katına ve PHP yaptığı gibi iki kat yavaş çalışıyor, PHP zaten ne yapıyoruz. Ile başlamak inline html / php şaşmayın. Yine, bu PHP nasıl çalıştığını, ne olduğunu anlamak için yardımcı olacak ve ne zaman kullanılacağını.
  • AJAX ve CSS gibi ... onlar PHP ile ilgisi, ama çıkışı ile PHP (ve AJAX içinde giriş alma ile) üretirler. Don't load your plate with too much to eat at once. düz PHP + HTML ile başlayın, ve elle CSS yapmak. Mutlu olduğunuzda, daha sonra, küçük bir javascript karıştırın.
  • Programlama Bunların tamamında (nispeten) benzer olduğu için any dil ile yapabileceğiniz en iyi şey, learn the environment Eğer çalışan için gidiyoruz olduğunu. Onlar hepsi sadece biraz farklı döngüler, vb veri yapıları, giriş / çıkış, ama hepsi iş var.
  • Don't believe the hype. Ben şu anda Python PHP hareketli ve ben sadece GetThingsDone için Django bant-wagon üzerinde atladı ettik, ama ben bir sorun üzerinde geldi bilmiyorum olacağını biliyorum nerede bunu düzeltmek için başlayacak. Yani benim kendi tavsiye alma ve baştan başlıyorum; , manuel okuma, bir web sunucusu ile bağlantılı alıyorum, giriş / çıkış alıyorsanız, basit dosyaları ayrıştırma ... benim yeni ortamı tanımaya tüm kısmını, bir test sistemi kurmak.

Her şeyden önce, bu PHP kendisi bir şablon sistemi IS

Güvenlik.

Lucas Umman dediği gibi - iyi kod yazmak için PHP size kalmış; ve sizi şımartmak değil. App bazı form veya başka savunmasız olacak - Bir logoutu onaylamak için, ya da neden sadece javascript doğrulamak değil, ya da register_globals neden kötü olduğunu neden ihtiyaç anlamak yoksa.

(Bunu sırayla öneririm) aşağıdaki öğrenmek gerekir:

  1. (Örneğin kalıtım, polimorfizm ve kapsülleme) Basic Nesne Tabanlı İlkeleri
  2. PHP dili kendisi. Özellikle, PHP 5.
  3. Vb tablolar, anahtarlar, ilişkiler, normalleşme gibi Veritabanı Tasarım İlkeleri
  4. SQL - Yapısal (veya Standart hangi hatırlıyorum asla) Sorgu Dili. Özellikle seçme, ekleme, güncelleme temellerini öğrenmek ve sorguları silmek.
  5. İyi tasarım ilkeleri ve bu sunum ve iş mantığı bölünmesi olarak kodlama uygulamaları (biri için burada StackOverflow mesajları bulabilirsiniz).
  6. Bir Çerçeve, herhangi bir Çerçeve - bu nesne yönelimli tasarım desenleri daha ileri kavramlar tanıtılacak olmak ve iyi tasarım ve kodlama uygulamaları teşvik edecek öğreticiler izleyin sağlayacaktır.
  7. MVC, Veritabanı Soyutlama Modelleri ve benzeri gibi Object-Oriented Design Patterns
  8. İleri SQL ve tetikleyiciler, depolanmış prosedürler ve diğer işlevleri gibi diğer veritabanı şeyler.

Mysql_ * işlevleri görmezden. Onlar güvenli kod yazma hiç kolay yöntem sağlamak yapmak değil sadece, aslında denemek eğer painful and tedious yapmak için kendi yolumdan gitmek. Yerine mysqli veya PDO kullanın (ve artık hiçbir mazereti var - PHP 4-sonu life'd ay önce idi).

Tüm iyi cevaplar, ama bir şey önemli eksik var: Eğer ciddi PHP içine almak istiyorsanız, o zaman, tembel, beceriksiz, cahil, yanlış ve dışarı orada PHP programcıları bir yeri vardır farkında olmalı ne yazık ki kendi kod serbest olsun halka. PHP geçmişi bence şaibeli bazı özelliklere sahiptir (sadece register_globals gibi şeyler ama aynı zamanda otomatik başlatma gibi küçük şeyler) ve insanlar hala bunları kullanmak desteklediği anlamına gelir. Bunu istemiyorum.

Ben en önemli şey PHP ile bir sayfa binanın tüm süreç nasıl çalıştığını öğrenmek için olduğunu söyleyebilirim - bir istemci (web tarayıcısı) gelen istekleri bu şekilde, web sunucusu çarptı, sonra yanıtı oluşturur PHP, aracılığıyla geçmiş olsun bu geri gönderilir. Bu sağlam bir anlayış sizi topraklayacaktır

  • çıkış başladıktan sonra başlık göndermek değil neden
  • nasıl oturumlar ve çerezler çalışma
  • Her sayfa (yani, istek için sorar ne olursa olsun teslim son kez ne hatırlamıyorum, ya da kullanıcı ne yapıyor sanırım) bir devletsiz bir şekilde inşa edilmelidir nasıl
  • Her öncelikle ve burada her yalanlar sorumluluğu için kullanılır ne daha da önemlisi, HTML, PHP, JavaScript ve CSS ve arasındaki fark.

Bunu aşağı var ettik, o zaman herhangi bir app yazıyorum ile oldukça rahat olmalıdır. Eğer aşağı var olmadıkça Ama, ben çok çaylak şimdi önce bunu gördüm gibi şeyler karıştırma başlayacağız.

Her değer, her yerde uygun şekilde kodlanmış gerektiğini. echo $some_variable_that_seems_innocent kötülük dokuz kez on çıktı.

Kullan htmlspecialchars() HTML / XML, tablolarını ya da en azından addslashes() SQL sorguları oluştururken, json_encode() komut içine değerleri eklerken, rawurlencode() URL bileşenleri eklerken, escapeshellargs(), vb kabuk komutları oluşturarak zaman

XHTML belgede bir senaryonun parçası URL metin eklerseniz, veri üç kez kodlamak gerekir.

Bu bir teknoloji olmasa da, ben PHP kullanırken, iyi kod yazmak için size tamamen, anlamak çok önemli olduğunu düşünüyorum. PHP bu yeteneğine sahiptir, ama bunu teşvik etmez. Siz de isterseniz, OO ilkelerini izler, dizayn ve kod yazmak için tamamen sorumludur. Sen dilinden hiçbir yardım olacaktır.

Bazı kod tamamlama ayıklama ve atalım (örneğin Eclipse gibi) büyük bir IDE kullanın. Bu size biraz zaman kazandıracak.

PHP programcısı bir sürü var ve çok popüler = şey bir sürü zaten, sizin için yapılan bir google arama yaparken, bazı kod yazmadan önce, her zaman iyi bir fikir olduğunu.

You should use some of the Framework if you start from scratch. This will answer all your question about AJax, template engines... because most of them come with these packages. Here is some post about how to start choosing a framework: SO 1, SO2, Here is a list of PHP Framework.

Windows, Linux veya Mac üzerinde PHP gelişebilir.

Getting a web server setup

Bilgisayarınızda yerel PHP ve MySQL çalıştırmak için php modülü ve MySQL veritabanı sunucusu ile Apache web sunucusu yüklemeniz gerekir. yani. bir lamba web sunucusu (Linux Apache MySQL PHP).

Geçmişte, ben Ubuntu kurulumu öneriyoruz. Bu gün, linux kullanmadan size bir tık kurulum websunucu verecek kullanılabilir birkaç çözümleri vardır.

For Windows:
http://www.wampserver.com

For OSX: http://www.mamp.info

Başlatmak için bir lamba web sunucusu kullanımını w3schools.com öğreticiler yaptıktan sonra.

Ben bir temel bir HTML olacağını söyleyebilirim. ;)

Etkili en az bir Debugger / IDE nasıl kullanılacağını bilmek gerekir. Bu bunun üzerinden atlama ve çalıştırmak izleyerek kod öğrenmek ne şaşırtıcı. Her iki hata aşağı izlemek için çok daha basit hale getirir, ve kod kalitesini artırır. Ben size yürütmek görmedim bir proje kodu taahhüt asla inanıyoruz.

The PHP Language

PHP.net gidin ve bütün belgeleri okuyun. Ne zaman yapılır, size php hakkında bilmeniz gereken her şeyi bilmiyorum, ama nereye bakılacağını bilmek olacaktır.

Eğer internet üzerinde bulmak kod parçacıkları dikkatli olun. Genellikle kötü bir uygulama yanı sıra SQL enjeksiyonu gibi güvenlik açıkları olan, html sql içerir. Ben güvenlik için iyidir hazırlanmış deyimleri, kullanmak birkaç gördüm.

Şahsen ben kitabı "Build your own database driven website using PHP and MySQL" son derece yararlı buldu.

Bunun dışında, ben PHP ile alışmak zor bulunan bir şey şimdiye kadar kullanılan başka bir dil ile karşılaştırıldığında, nasıl rahat. Bununla hiçbir tipleri, sözdizimi ve noktalama konusunda esneklik anlamına gelir. Şahsen ben, bunun iyi bir şey olduğunu düşünüyorum, ama ben de muhtemelen oldukça kötü davranışı teşvik ettiğini biliyoruz.

Olabildiğince erken gibi fonksiyonlar bunları yapmak - - yani, kendinizi tekrar tekrar kod aynı küçük (veya büyük) bitleri yazma bulacaksınız DRY prensibi gibi bir şey kullanmayı deneyin: İşte ben başka bir ipucu kodlama sürecinde, ve hayat daha sonra çok daha kolay olacaktır.

Eğer kullanıcı güvenmiyor nasıl HTTP işleri ve öğrenmek gerekir: zaten bahsedildi puan yanında.

Araçlar .... Ben kod kalitesini artırmak araçları bir dizi keşfettim, işlemlerini düzene, ve genellikle bir sürü daha kolay bir PHP geliştiricisi olarak hayat kurmak.