Saya baru mengenal pemrograman web dan saat ini saya sedang belajar tentang PHP. Saya ingin tahu kapan saya harus menggunakan kerangka kerja PHP seperti CakePHP? Apa hal-hal yang ditawarkan ini dan kerangka kerja PHP serupa lainnya untuk saya? Dan apakah benar-benar penting untuk menggunakan kerangka kerja untuk menjadi seorang profesional?
- Dan bisakah saya membuat kerangka kerja saya sendiri untuk menyediakan fitur yang saya suka?
php
frameworks
Goma
sumber
sumber
Jawaban:
Saat Anda merasa nyaman dengan PHP, Anda bisa mulai menggunakan framework. Dan Anda harus selalu menggunakannya:
Anda dapat membuat kerangka kerja Anda sendiri, tetapi saya pasti tidak akan merekomendasikannya. Ini rumit, sudah ada banyak kerangka kerja yang baik di luar sana, dan sepertinya Anda tidak akan menemukan fitur yang hilang. Selain itu, mereka sering menyediakan cara untuk menambahkan fitur Anda sendiri kepada mereka, tanpa harus membuat yang sama sekali baru.
sumber
Buat beberapa halaman tanpa kerangka ... Anda pada dasarnya akan mulai menulis kerangka kerja Anda sendiri dengan coba-coba. Setelah Anda melakukannya, pindahlah ke kerangka kerja dan nikmati berapa banyak waktu yang Anda hemat. Mencoba membangun kerangka kerja Anda sendiri dapat mengajarkan Anda beberapa hal, dan akan membantu Anda menghargai kerangka kerja yang sudah ada di luar sana.
Ketika saya pertama kali masuk ke PHP, saya pikir kerangka kerja adalah pemborosan waktu. Sekarang, saya menggunakan CodeIgniter bahkan untuk proyek sederhana. Dibutuhkan sekitar 1 menit untuk bangun dan menjalankan Anda sudah memiliki banyak perpustakaan hebat yang tersedia untuk Anda. Dan, seperti yang disebutkan poster sebelumnya, sebagian besar kerangka kerja dapat diperpanjang, sehingga Anda selalu dapat menambahkan fungsionalitas apa pun yang Anda inginkan.
sumber
Seperti kata Niphra , hanya mulai menggunakan kerangka kerja ketika Anda dapat menggunakan PHP tanpa kerangka kerja (yaitu, mengakses database, mengirim tajuk dan konten, pemrosesan string, manipulasi data, dll.). Sejauh pertanyaan Anda:
Kapan saya perlu menggunakan kerangka kerja PHP seperti CakePHP? Ketika proyek Anda tumbuh melampaui beberapa file PHP; saat Anda mulai dengan kuat memisahkan logika menjadi elemen yang berbeda dan fungsi modularisasi / berbagi (sesi, dll.) adalah ketika Anda harus menggunakan kerangka kerja.
Apa hal-hal yang ditawarkan ini dan kerangka kerja PHP serupa lainnya untuk saya? Abstraksi; alih-alih berinteraksi secara langsung dengan database, Anda dapat menggunakan Object-Relational Mapping (ORM) untuk mengelola struktur dan hubungan antara data Anda dalam database. Sebagian besar kerangka kerja dalam banyak bahasa menyediakan ORM untuk membuatnya lebih mudah untuk berinteraksi dengan lapisan basis data aplikasi Anda. Demikian pula, kerangka kerja sering memisahkan lapisan menanggapi interaksi pengguna. Pemisahan yang paling umum adalah paradigma Model View Controller (MVC), yang, singkatnya, mengabstraksi logika database ke dalam Model (sebuah antarmuka ke ORM, dalam banyak kasus), memproses permintaan dan berinteraksi dengan Model menjadi Controller, dan rendering dari HTML / PDF / image / dll yang sebenarnya. ke dalam View. Kerangka kerja sering menyediakan alat lain seperti perutean (untuk memungkinkan pemrosesan URI permintaan yang kompleks (EG: Memetakan permintaan "http://example.com/users/1 "ke Pengguna pengontrol, yang kemudian mencari Model pengguna dengan ID 1) dan abstraksi sesi dan struktur dasar lainnya.
Dan apakah benar-benar penting untuk menggunakan kerangka kerja untuk menjadi seorang profesional? Belum tentu; kerangka kerja membuat hidup lebih mudah; tetapi Anda tidak harus menggunakannya untuk menjadi profesional. Kerangka kerja memberikan abstraksi dan standardisasi yang praktis, tetapi mereka bukan persyaratan dalam kebanyakan kasus.
sumber
Setelah membaca beberapa jawaban, saya ingin mengatakan dulu bahwa Anda tidak sering memiliki banyak pilihan tentang kerangka kerja apa yang akan Anda gunakan atau apakah Anda akan menggunakan salah satu atau tidak (sebagai seorang profesional). Saya tidak ingin mengintimidasi Anda, tetapi Anda perlu membangun cukup pemahaman tentang PHP untuk memungkinkan berpindah dari satu kerangka kerja ke kerangka kerja lainnya serta menggunakan lebih dari satu kerangka kerja sekaligus.
Tidak ada jawaban universal untuk ini. Sebagai seorang profesional, Anda akan ditugaskan untuk menyelesaikan masalah spesifik dan ini akan menjadi faktor penentu untuk kapan dan apa dari setiap proyek, terutama jika klien memiliki permintaan khusus. Tetapi secara umum, Anda akan selalu menggunakan beberapa bentuk kerangka kerja dengan PHP, kecuali jika Anda memodifikasi atau memperluas aplikasi yang sudah ada sebelumnya yang memiliki kerangka kerja sendiri (seperti Wordpress atau PHPBB).
Seperti yang dikatakan oleh dirk, mereka menawarkan abstraksi. Artinya, mereka mengambil prosedur umum multi-langkah dan mencoba membuatnya sesederhana dan sesingkat mungkin. Singkatnya, mereka mencoba menghadirkan solusi hanya-tambahkan-air untuk tugas-tugas umum.
Secara umum, tidak, tidak penting menggunakan kerangka kerja untuk menjadi seorang profesional. Tetapi secara realistis, Anda tidak akan memiliki banyak karier jika Anda tidak terbiasa dengan setidaknya beberapa kerangka kerja umum. PHP tanpa kerangka kerja seperti C ++ tanpa pustaka std. Anda tidak memerlukannya, dan Anda benar-benar dapat melakukan lebih banyak tanpa itu karena Anda akan langsung menggunakan fungsionalitas blok-blok builing tingkat rendah dari bahasa tersebut, tetapi Anda akan membutuhkan waktu lebih lama untuk melakukan hal yang sama.
Iya. Bahkan, Anda mungkin akan berakhir melakukannya meskipun tanpa disengaja. Maksud saya ini bukan kerangka kerja do-all yang ekspansif, tetapi lebih seperti tool-bag fungsi dasar dan skrip yang melakukan tugas tidak umum atau cukup umum untuk ditangani oleh kerangka kerja rata-rata. Milik saya pada dasarnya terdiri dari berbagai sistem file, penanganan proses, dan rex-ex tid-bit dengan beberapa utilitas curl dan stream / socket yang berbeda.
sumber
Biasa dari orang yang menghabiskan waktu bertahun-tahun meretas cara saya sendiri untuk berbicara ke database dan berbicara dengan API online dan baru sekarang mulai menggunakan kerangka kerja, menggunakannya ketika Anda setidaknya memiliki pemahaman tentang apa yang mereka lakukan, jika mungkin.
Jangan langsung melompat ke RedBean saat pertama kali bekerja dengan database, bekerja dengan DB secara manual terlebih dahulu. Dengan cara ini Anda memiliki pemahaman menyeluruh tentang apa yang sebenarnya Anda ambil dan lakukan untuk DB, yang benar-benar dapat membantu dengan skalabilitas. Anda juga dapat membuat solusi sendiri ketika kerangka kerja yang Anda gunakan tidak melakukan sesuatu yang perlu Anda lakukan.
Setelah Anda memahami apa yang terjadi, gunakan kerangka kerja! Itu membuat segalanya jadi lebih mudah. Crazyness dengan menyimpan query kemudian perulangan atas hasil dengan
mysql_fetch_assoc
semua pergi, dikurangi menjadi satu panggilan:$book = R::load( "book", $id )
. Anda akan jauh lebih produktif dan dapat memperbaiki bug di masa depan atau menambahkan fitur di masa depan dengan lebih mudah.sumber
Gunakan kerangka kerja ketika Anda tahu teknologi yang mendasari cukup baik untuk mengetahui apa yang dilakukan kerangka kerja untuk Anda, dan mengapa itu baik (atau buruk)
Kerangka kerja adalah semacam alat-meta, yang memungkinkan Anda untuk bekerja dengan alat-alat Anda (bahasa, database) sedikit lebih cepat tanpa harus khawatir tentang beberapa detail dari apa yang Anda lakukan, yang baik jika Anda benar-benar tahu Anda alat.
Apa yang Anda TIDAK ingin terjadi adalah bahwa Anda mempelajari kerangka kerja alih-alih alat, dan menjadi dinaikan ke dalam cara tertentu dalam melakukan sesuatu, dan akhirnya tidak benar-benar mengambil penguasaan bahasa dan konsep yang mendasarinya - itu harus menjadi alat, bukan kruk.
sumber
Ketika Anda mendapati diri Anda melakukan hal yang sama berulang-ulang, lihatlah sekeliling dan lihat apakah ada kerangka kerja yang melakukan hal-hal yang sama berlebihan yang akhirnya Anda lakukan sendiri. Jangan hanya menggunakan kerangka kerja karena hype. Saya pribadi menyukai CodeIgniter dan Rasmus Lerdorf's "no-framework PHP MVC framework" http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html
sumber
Saya akan merekomendasikan berpikir dengan hati-hati mengapa Anda akan menggunakan framework x, y atau z. Setiap kerangka kerja tidak hanya menyediakan fungsionalitas, yang tidak harus Anda terapkan sendiri, tetapi juga cara berpikir. Lihat saja Spring, JEE, Rails atau Django. Empat kerangka kerja yang menyediakan cukup untuk menginjak aplikasi web dalam waktu singkat.
Namun keempat mempromosikan cara berpikir mereka sendiri tentang bagaimana aplikasi web harus dibangun. Jika itu tidak sesuai dengan kebutuhan Anda atau sesuai dengan selera Anda, Anda akan kesulitan mengambil hal-hal lebih lanjut.
Ini merupakan perbandingan yang sangat radikal, tetapi mungkin membangun perpustakaan kecil lebih sesuai dengan kebutuhan Anda. Tetapi kerangka kerja yang pasti akan membantu Anda bekerja dalam tim yang lebih besar atau menemukan pekerjaan baru, karena itu menunjukkan bahwa Anda tertarik dalam pengembangan perangkat lunak secara keseluruhan.
sumber
Kerangka kerja selalu baik untuk digunakan dari awal. Ini mempromosikan kegunaan kembali kode, keterbacaan yang lebih baik dan menghemat sedikit waktu pengembangan.
Saya tidak terlalu berpengalaman dengan PHP, tapi saya akan mendorong penggunaan kerangka apa pun.
sumber