Saya telah mengembangkan PHP selama sekitar 8 tahun sebagai hobi. Pada tahun 2009, saya mengambil codeigniter dan sejak itu saya tidak berhasil mengembangkan satu proyek pun.
Saya merasa itu memperlambat saya mencoba mencari cara untuk memodifikasinya agar berfungsi seperti yang saya inginkan, ketika jika saya bekerja di PHP murni, saya akan tahu, atau saya akan dapat dengan cepat menemukan potongan untuk.
Saya sudah mencoba CodeIgniter, Kohana dan Symfony. Saya suka kemudahan penggunaan (dan saya juga mulai menggunakan doktrin sebagai ORM yang secara besar-besaran mempercepat kerja database saya), tetapi saya menemukan proyek memakan waktu 3-4 kali lipat jumlah waktu yang dibutuhkan dalam PHP murni. Saya bosan dan frustrasi ketika saya tidak dapat menemukan solusi untuk masalah yang sebelumnya saya selesaikan dengan PHP murni.
Adakah yang kembali dari menggunakan kerangka kerja ke pendekatan tanpa kerangka kerja. Apakah ada kerangka kerja keamanan dasar (mencegah XSS, memfilter data yang diposting, menyediakan fungsi pembersihan untuk digunakan dengan database)? Saya pikir sesuatu seperti itu akan menguntungkan saya lebih dari kerangka skala penuh. Saya pikir belajar bekerja dengan kerangka kerja telah mengajari saya banyak hal, tetapi saya akan lebih senang bekerja dengan kode saya sendiri.
sumber
Jawaban:
Versi PHP5 saat ini menyertakan banyak kerangka keamanan yang Anda cari sebagai bagian dari pustaka standar.
httponly
atribut ke session_set_cookie_params () (Melindungi dari skrip yang membaca cookie sesi di browser yang kompatibel)httponly
atribut dengan setcookie () .Jika Anda menerima HTML sebagai masukan, saya sarankan untuk mengambil Pemurni HTML dan memanggilnya melalui baris FILTER_CALLBACK di penyiapan filter_input_array Anda. Pendekatan berbasis daftar putih untuk memasukkan keamanan membuat garis pertahanan pertama yang hebat (dan sangat kuat) melawan XSS.
Sejauh yang saya tahu, PHP tidak hadir dengan mekanisme untuk melindungi dari pemalsuan permintaan lintas situs , tetapi saya yakin Google dapat membantu Anda dengan yang satu itu. The OWASP Keamanan cheatsheets termasuk bagian di atasnya jika Anda ingin menerapkan perlindungan Anda sendiri.
Karena penasaran, saya memutuskan untuk juga mulai melihat komponen mandiri dan inilah yang saya temukan sejauh ini:
Templating:
Hal-hal yang masih belum saya periksa dengan benar:
sumber
Saya tidak percaya pada kerangka kerja ... Saya telah bekerja di banyak dari mereka.
Alasan membenci kerangka kerja MVC:
1) Code bloat, saya membeli kelas premium yang membantu saya dalam pengembangan. Seperti kelas formulir atau kelas SQL.
2) Saya percaya bahwa kerangka kerja MVC tidak mudah dibawa-bawa terutama saat menggunakan manajer ketergantungan.
3) Saya percaya bahwa Anda benar-benar menulis lebih banyak kode dengan kerangka kerja MVC daripada jika Anda harus menggunakan boilerplate dengan banyak kelas berguna yang menangani otentikasi, dll.
4) Sebagian besar kerangka juga melayani hanya satu atau dua database secara native.
Saya akan menyarankan menemukan kerangka formulir dengan otentikasi dan editor teks & kerangka sql seperti madoo + kelas email ...
90% dari aplikasi Anda selalu dalam bentuk, KELAS sql & ajax - sisanya dapat diperoleh saat dibutuhkan
Saya seorang minimalis dan saya berjuang dengan gagasan memiliki kode di aplikasi saya yang tidak melakukan apa-apa ... kalau-kalau saya membutuhkannya tidak berhasil untuk saya.
sumber
Dengan banyak pengalaman di belakang Anda, Anda harus memiliki kumpulan perpustakaan favorit Anda sendiri, memilih sendiri dan menghasilkan kerangka kerja sederhana Anda sendiri. Kerangka kerja atau tidak ada kerangka kerja (dan yang mana) tergantung pada jenis proyek yang sedang dikerjakan, tidak ada sarung tangan yang cocok untuk semua. Jadi saya akan sangat menyarankan bahwa jika Anda merasa bahwa kerangka kerja yang ada memperlambat Anda, luangkan waktu dan buat kerangka yang berfungsi sesuai kebutuhan Anda.
sumber
Berdasarkan pernyataan Anda bahwa Anda telah menggunakan PHP sebagai hobi, serta pernyataan profil Anda "Perlahan-lahan", ini sepertinya masalah kurva belajar. Anda tampaknya tidak memiliki kedalaman dan keluasan pengalaman untuk a) memahami bagaimana bekerja dalam struktur yang diberlakukan oleh kerangka kerja dan b) dengan demikian Anda tidak dapat memperoleh manfaat dari efisiensi yang dimungkinkan kerangka kerja.
Saya mendorong Anda untuk mematuhinya. Kembali ke awal dengan tutorial video. Temukan dan baca kode orang lain sampai Anda memahaminya. Bangun proyek Anda dari bawah ke atas - mulailah dengan sederhana, dan tambahkan fungsionalitas. Ikuti forum, mencoba menjawab pertanyaan sendiri sebelum membaca balasan.
Saya telah memprogram secara profesional selama hampir 20 tahun, di berbagai platform, dan saya masih butuh waktu untuk merasa nyaman dengan CI. Tapi sekarang saya, saya tidak akan kembali ke PHP murni (untuk proyek saya sendiri) kecuali saya memiliki situs dengan skala yang cukup sehingga mengekspos masalah kinerja yang dapat diukur (pikirkan Twitter).
sumber
Zend Framework benar-benar super untuk itu. Anda dapat menggunakan sebanyak atau sesedikit yang Anda inginkan. Semuanya dikodekan dalam php dan bersumber terbuka sehingga Anda bisa meretasnya dan menjadikannya milik Anda. Komponen yang berbeda tidak bergantung satu sama lain seperti pada kerangka lainnya.
Anda dapat membangun sendiri kerangka kerja sederhana menggunakan beberapa komponen dari Zend tanpa masalah.
Coba lihat !
sumber
Saya tahu persis apa yang Anda rasakan. Saya mulai 4 ~ 5 tahun yang lalu di PHP (saya berasal dari Delphi, lol), dan mulai dengan php murni. Apa yang saya dukung adalah "CMS Panel like" yang hanya membaca semua kolom tabel dan membuat formulir. Setelah beberapa lama saya mencapai pengetahuan tentang Kerangka PHP, saya mencoba CakePHP untuk pertama kalinya dan tidak suka, setelah itu masuk ke Yii yang menurut saya cukup intuitif dan mudah digunakan (Dengan generator Gii itu cukup banyak). Saya Mencoba Symfony, ZF2, Laravel, Yii2-Beta dan beberapa kerangka kerja untuk RAD, tetapi tetap saja saya tidak merasa cukup cepat seperti sebelumnya kerangka kerja.
Kebetulan saya mengembangkan kerangka kerja saya sendiri (Secara alami, tidak persis saya bangun suatu hari dan berkata "Saya akan membuat kerangka baru", terjadi seiring waktu). Saya Tahu ini adalah praktik buruk yang buruk dan gerakan "wheel reinvention", TAPI, sekarang saya mengembangkan proyek saya jauh lebih cepat (lebih dari PHP saja).
Karena kodenya adalah total MESS, saya mulai sekitar satu bulan yang lalu untuk merumuskan kembali kerangka kerja saya, sekarang menggunakan komposer, mengikuti aturan umum yang ada di antara kerangka kerja php, adalah MVC.
Mengapa saya menyusun ulang? Karena jika seseorang perlu memperbaiki proyek saya, itu tidak akan menjadi hal dunia lain.
Jadi saya mengerti Anda.
Saran saya adalah, persiapkan alat Anda (sebut saja kerangka kerja, aplikasi prasetel, atau apa pun namanya), dan gunakan sesuai keinginan Anda, tetapi tetap ikuti beberapa aturan umum (Seperti MVC, hal-hal yang "mudah dibuat modul" yang mana Anda dapat mengganti jika rusak.
sumber
Untuk keamanan dasar, saya menggunakan metode filter khusus yang membungkus superglobals saya . Sintaksnya perlu dibiasakan, tetapi lebih sederhana daripada API filter_var () PHP dan tidak membiarkan Anda menyelewengkan sanitasi:
$_GET->text("inputvar") or $_POST->name["field"]
Ini juga memungkinkan pelolosan $ _REQUEST-> sql () sebaris. Tetapi untuk pekerjaan database tetap gunakan SQL berparameter, atau DAL / ORM pilihan Anda.
sumber
Saya melakukan studi satu hari tentang ToroPHP dan merasa cukup bagus. Ini adalah kerangka kerja minimalis yang ditargetkan untuk aplikasi RESTful. Ini memungkinkan untuk menjaga kode sisi server tetap modular, tanpa harus berurusan dengan pembengkakan kerangka kerja apa pun.
sumber
Saya tidak tahu apa yang mengganggu Anda, tetapi codeigniter adalah kerangka kerja yang bagus, memiliki dokumentasi yang bagus dan karena banyak orang menggunakan codeigniter, Anda akan menemukan semua bantuan dalam dokumentasinya, atau forum atau di stackoverflow. Saya telah mengerjakan banyak kerangka kerja ( Codeigniter, CakePHP, Zend, Spring 3.0, Ruby on Rails), tetapi saya harus mengatakan codeigniter memiliki dokumentasi terbaik. Ada banyak hal di codeigiter yang ditangani secara otomatis dan Anda tidak perlu khawatir tentang keamanan. Bekerja pada inti PHP seperti menciptakan kembali roda. Yang paling penting adalah berpindah dari satu inti ke kerangka kerja akan membutuhkan banyak usaha Anda setelah Anda terbiasa, Anda akan mulai menyukainya. Selain itu, Ruby on rails juga merupakan kerangka kerja yang bagus setelah Anda mengetahui seluk beluknya. memiliki kecepatan ganda.
sumber