Apa cara yang baik untuk membiasakan diri dengan PHP, yang berasal dari latar belakang ASP.NET? [Tutup]

10

Saat ini, saya sangat nyaman dengan alat bangunan / aplikasi web di lingkungan ASP.NET. Saya tidak benar-benar ingin meninggalkan tbh, karena saya sangat suka C #, ASP.NET, MVC 3, Visual Studio, dll.

Namun, saat ini saya hampir tidak tahu apa-apa tentang PHP dan sepertinya kekurangan yang ingin saya koreksi.

Apakah ada buku (atau metode pembelajaran lainnya) yang akan menjadi sumber yang bagus untuk belajar PHP? Jelas ada banyak buku PHP awal, tapi saya sudah merasa nyaman dengan banyak hal yang terkait dengan membangun halaman web, dan tertarik untuk berfokus pada PHP itu sendiri yang mungkin tidak kompatibel dengan ruang lingkup beberapa buku PHP awal.

Saya membaca PHP Manual sedikit, dan sepertinya tidak mengalir semulus yang ideal. Apakah ada buku PHP awal yang cocok? Saya merindukan kekompakan yang sebagian besar buku berisi ketika melihat melalui sampel tersebut. Ada banyak info lebih banyak, tetapi rasanya lebih seperti referensi saat coding daripada kendaraan pembelajaran utama.

Eric
sumber
5
Mengapa Anda pikir tidak mengetahui PHP adalah kekurangan yang perlu Anda ralat. Apakah tidak mengetahui Rails, Django, J2EE, node.js, dll. Kekurangan yang Anda butuhkan untuk memperbaiki? Apakah ada permintaan nyata bagi Anda untuk mengetahui dan menggunakan PHP di bidang pekerjaan Anda saat ini?
Raynos
1
@ Raynos Yah popularitas php lebih besar dari rails, django, node.js dikombinasikan ...
yannis
Mengapa (bukan nyala) Anda ingin menjadi lebih baik dengan PHP? Apakah itu untuk belajar berkembang dalam lingkungan yang lebih dinamis, ditafsirkan atau lebih hanya karena begitu banyak yang ada di sana?
sbrenton
1
@ Raynos - pangsa pasar. Peluang beberapa pengetahuan tentang php bermanfaat untuk membandingkan solusi, mengevaluasi masalah, membantu teman, dll lebih tinggi daripada contoh yang Anda cantumkan. Saya tidak punya keinginan untuk pindah dari asp.net, jadi mengetahui lingkungan alternatif "terbaik" kurang berguna daripada mengetahui yang paling populer.
Eric
1
Masuklah ke MVC3 yang bisa menjadi langkah pertama yang bagus
Daniel Little

Jawaban:

7

Sumber daya terbaik di luar sana untuk belajar PHP adalah manual PHP . Ini ditulis dengan sangat baik dan terstruktur dengan baik, dan merupakan salah satu aset terbesar komunitas PHP. Jika Anda yakin dengan ASP.net, manual ini cukup untuk membantu Anda memulai.

Sebelum Anda mulai membaca, Anda harus menyiapkan tumpukan PHP. Anda dapat menginstal Apache, PHP, dan basis data favorit Anda (SQLServer baik-baik saja) sendiri (sangat mudah) atau Anda dapat mensetup tumpukan siap pakai seperti XAMPP . XAMPP akan menginstal:

semuanya sekaligus (ditambah beberapa hal lainnya). Satu perpustakaan penting yang hilang adalah phpUnit , yang jelas akan membantu Anda dengan unit testing.

Maka Anda harus menginstal IDE, pilihan Anda yang jelas adalah Eclipse Classic dengan PHP Development Tools (PDT) atau Netbeans untuk PHP . Ada banyak yang lain, tetapi dua ini saya rekomendasikan. Saya menggunakan keduanya, jika Anda tidak dapat memilih di antara mereka Netbeans sedikit lebih mudah untuk dipahami, tetapi Anda harus benar-benar mengevaluasi keduanya dan memutuskan sendiri mana yang lebih baik untuk Anda - Saya belum pernah bekerja dengan Visual Studio di lama sekali dan saya benar-benar tidak tahu IDE mana yang mungkin terasa lebih akrab bagi Anda.

Ketika Anda melupakan dasar-dasar dari manual, Anda harus mulai memikirkan kerangka kerja MVC. Sekali lagi, saya akan merekomendasikan dua:

Zend Framework adalah binatang buas dan CodeIgniter adalah keindahannya, jika Anda izinkan saya metafora konyol. Zend Framework memiliki kurva belajar yang curam, didukung oleh Zend ( perusahaan di belakang PHP ), dan Anda dapat melakukan hampir semua hal dengan itu. CodeIgniter jauh lebih mudah untuk dipahami, memiliki dokumentasi yang bagus untuk pemula dan cukup populer. Tetapi sebagian besar basis kode itu sudah usang, karena mereka dulu mendukung PHP4 belum lama ini.

Untuk pemula, pilihan yang jelas adalah CodeIgniter, tetapi jangan terjebak dengannya. Gunakan itu sebagai alat belajar dan pindah ke Zend Framework sesegera mungkin. Sekali lagi ada lebih banyak kerangka kerja MVC di dunia PHP, tetapi keduanya adalah yang saya rekomendasikan.

Sedangkan untuk buku, buku non pemula yang bagus adalah Obyek PHP, Pola dan Praktek . Sitepoint 's buku PHP selalu menyenangkan untuk dibaca. Jika Anda jatuh cinta dengan PHP, Anda harus benar-benar mempertimbangkan untuk berlangganan Arsitek PHP .

Terakhir, lihat diskusi hebat ini tentang alasan murni teknis untuk PHP sebagai pilihan pertama .


Pembaruan: Beberapa sumber daya daring lagi, yang sebagian besar menargetkan bukan pemula:

dan jika karena alasan aneh Anda ingin bermain-main dengan PHP di IIS dan bukannya Apache, tempat awal yang baik adalah PHP Microsoft di Windows . PHP pada IIS berfungsi dan merupakan pilihan yang valid terutama untuk pengembang .Net, tetapi Anda harus benar-benar menggunakan Apache (dan MySQL atau PostgreSQL alih-alih SQLServer) untuk mendapatkan pengalaman PHP lengkap dan juga memastikan bahwa keahlian Anda portabel untuk semua populer lainnya. OS. Anda tidak ingin melewatkan kesenangan yang mod_rewrite .


Catatan pribadi: Ada banyak kebencian untuk PHP, beberapa di antaranya dibenarkan . Jika Anda memutuskan untuk melakukannya, Anda harus sangat kritis terhadap berbagai sumber daya PHP, skrip, perpustakaan yang akan Anda temui di sepanjang jalan, ada terlalu banyak omong kosong di luar sana dan tidak mungkin bagi pemula untuk mengetahui perbedaannya. Popularitas PHP yang sangat luas dapat diterjemahkan ke komunitas yang sangat besar dan bermanfaat, kemampuan pemasaran Anda yang besar, jutaan blog, tetapi juga dapat diterjemahkan ke beberapa ribu terabyte kode jelek.

yannis
sumber
2

Yannis memiliki banyak hal bagus untuk dikatakan di sana, tetapi saya membaca, Membangun Situs Web Anda Sendiri Berbasis Driven, Edisi ke-4 , dan itu diisi dengan semua yang perlu saya ketahui untuk memulai di jalur yang benar untuk mengembangkan aplikasi web PHP profesional.

Saya juga bekerja secara eksklusif pada. NET sebelum saya mulai melakukan beberapa pekerjaan PHP. PHP jauh lebih mudah untuk dikerjakan tetapi memiliki beberapa masalah aneh ketika mengembangkan aplikasi skala besar dan buku ini akan membantu Anda memulai hal itu.

Satu masalah bagi saya adalah bagaimana PHP tidak sepenuhnya bahasa Berorientasi Objek. Ini memiliki semua jenis fungsi dalam bentuk prosedural dan bentuk Berorientasi Objek dan agak butuh waktu untuk terbiasa, berasal dari bahasa di mana semuanya diatur ke dalam kelas dan ruang nama.

Satu lagi adalah betapa mudahnya Anda dapat mencampur semuanya dalam PHP membuat banyak hal menjadi lebih sulit. Di .NET alat yang Anda gunakan, seperti Visual Studio, memandu Anda untuk benar-benar mempraktikkan standar pengkodean yang baik dengan melakukan beberapa pekerjaan untuk Anda. Biasanya halaman .aspx akan dipisahkan dengan HTML Markup dan kode C # menjadi dua file.

Jika Anda adalah pengguna berat alat .NET, dan lebih suka bekerja dengan kontrol ASP.NET, masih ada masalah lain karena Anda akan kekurangan kontrol (GridView dll) di PHP. Saya tahu bahwa ada banyak perpustakaan / kerangka kerja yang memberi Anda sesuatu yang serupa tetapi mereka bukan bagian dari paket PHP dasar.

Masalah lain bagi saya adalah bagaimana di PHP, ada banyak penggunaan Arrays dan Hash yang melayani lebih banyak koleksi seperti di .NET. Mereka ada di mana-mana dan itu akan menjadi baik untuk membiasakan diri dengan fakta bahwa array bukan hanya daftar yang diurutkan dari jenis objek / unit skalar yang sama. Mereka dapat server sebagai objek koleksi untuk menampung segala macam barang.

Saya bisa terus dan terus tetapi untuk menyebutkan salah satu hal utama yang saya temukan sangat aneh untuk PHP (saya tidak tahu itu bisa juga umum dalam bahasa lain), adalah seberapa sering fungsi "include" (dan terkait) digunakan sangat umum. Saya dapat mengatakan bahwa buku dari Sitepoint dapat mempercepat Anda dengan semua ini.

tsega
sumber
Saya punya tautan ke buku-buku php Sitepoint dalam jawaban saya, semuanya sangat bagus. Bisakah Anda sedikit memperluas jawaban untuk memberi tahu kami tentang yang peculiar issues when developing large scale applicationstelah Anda identifikasi? Karena Anda memiliki latar belakang .net sebagai op, akan sangat membantu untuk mengetahui apa yang dirasakan oleh orang-orang .net aneh tentang php.
yannis
OK Yannis, salah satu masalah bagi saya adalah bagaimana PHP tidak sepenuhnya Berorientasi Objek, ia memiliki segala macam fungsi dalam bentuk prosedural dan bentuk Berorientasi Objek dan agak butuh waktu untuk membiasakan diri datang dari bahasa yang begitu terorganisir menjadi tidak hanya menjadi hanya kelas tetapi semua ruang nama dan segalanya.
tsega
Hmmm, itu masalah umum, bukan hanya when developing large scale applications. Bagaimanapun, saya lebih memikirkan masalah konseptual & pendekatan, seperti PHP mengambil pendekatan yang sama sekali berbeda dari .Net pada masalah penskalaan, sesuatu seperti itu. Saya memiliki sedikit pengalaman dengan. Net jadi saya akan tertarik untuk mencari tahu apa yang menurut orang-orang .Net secara khusus aneh ketika datang ke PHP. Tapi hal-hal seperti fakta bahwa PHP adalah multi-paradigma memang bisa diharapkan.
yannis
1
Dalam hal pendekatan, sebagian besar pengembang ASP.NET cenderung menggunakan kontrol khusus (komponen - yang merupakan kombinasi dari kontrol HTML dengan Javascript dan kode sisi server) untuk mengembangkan aplikasi "skala besar" (intensif data). Ini sebagian besar disebabkan oleh kenyataan bahwa sebagian besar pengembang ASP.NET sebenarnya telah pindah ke pengembangan web dari pengembangan aplikasi desktop menggunakan alat yang hampir sama. Oleh karena itu, sebagian besar mencari cara untuk menerjemahkan keterampilan mereka yang sudah diperoleh bekerja dengan kontrol khusus agar sesuai dengan pengembangan web.
tsega
IDE yang sangat bagus untuk mendapatkan Buku ini adalah Netbeans . Debugging PHP sebagus yang didapat.
tsega