Apakah kerangka kerja diperlukan dalam PHP? [Tutup]

9

Apakah kerangka kerja benar-benar diperlukan dalam PHP?

Apa kelebihan dan kekurangan dari menggunakannya?

Tayyab Gulsher Vohra
sumber
2
Baru-baru ini berlari melintasi pos SO ini yang terlihat agak berwawasan tentang penggunaan PHP tanpa kerangka stackoverflow.com/questions/3655145/…
Matt Molnar

Jawaban:

17

Tidak. Tapi itu bagus.

Pro : Menghemat waktu tidak harus membangun kembali kode sendiri. Gunakan segudang fitur, fungsi, dan struktur data yang dibangun orang lain yang berlaku untuk proyek Anda.

Cons : Tidak membuat kode sendiri bisa menjadi kerugian pada tingkat pemahaman yang lebih baik atas dasar di mana proyek Anda beroperasi.

Tim
sumber
1
tetapi masalahnya adalah hari demi hari ada banyak kerangka kerja yang saya tidak tahu mana yang harus digunakan
Tayyab Gulsher Vohra
4
@Tayyab Anda harus menggunakan mereka semua!
Arnis Lapsa
1
Memilih kerangka kerja bagi Anda untuk memutuskan, berdasarkan kebutuhan aplikasi Anda dan gaya pengkodean Anda. Juga tanyakan pada diri Anda, apakah Anda memerlukan kerangka kerja untuk menggulung aplikasi Anda sendiri, atau CMS (Joomla, Drupal, dll)?
Darren Newton
2
Anda harus berhati-hati tentang "tidak diketahui tidak dikenal". Jika Anda tidak menggunakan kerangka kerja, risiko lupa atau tidak mengetahui tentang beberapa hal yang dipecahkan kerangka kerja bagi Anda adalah besar. Sebagai contoh, apakah Anda benar berurusan dengan pencegahan serangan CSRF? Aplikasi Anda akan bekerja tanpa pencegahan seperti itu, tetapi akan mudah diretas. Memilih kerangka kerja utama (salah satunya) berarti Anda mendapat manfaat dari semua hal yang harus diperhatikan oleh aplikasi web, meskipun Anda belum mempelajarinya.
Joeri Sebrechts
9

Kerangka kerja aplikasi web hanya sebaik pengalaman Anda dengannya.

Setiap kerangka kerja memiliki kurva belajar, sampai Anda mengatasi kurva itu, Anda mungkin akan akhirnya melakukan hal-hal yang begitu terbalik sehingga Anda meniadakan semua manfaat menggunakan kerangka kerja. Aplikasi Anda akan lambat untuk dikembangkan, kode akan sulit untuk diikuti dan semuanya akan rusak ketika versi baru dari kerangka dirilis. Saya akan merekomendasikan untuk tidak mencoba menggunakan kerangka kerja yang tidak dikenal (atau teknologi asing) untuk proyek dengan tenggat waktu yang ketat.

Bagaimana seseorang menjadi lebih baik dalam menggunakan kerangka kerja?

Anda harus membangun beberapa aplikasi mengerikan dewa dan beralih. Akhirnya Anda akan mengetahui keanehan, dan menggunakan kerangka kerja akan memungkinkan Anda waktu pengembangan lebih pendek dan kode yang lebih terorganisir.

Haruskah Anda menggunakan kerangka kerja PHP?

Setiap orang yang kode PHP cukup akhirnya menggunakan kerangka kerja. Pertanyaannya adalah, apakah Anda akan menggunakan kerangka kerja Anda sendiri atau yang dikembangkan oleh pihak ketiga? Dalam pengalaman saya, Anda mungkin tidak akan pernah mengembangkan kerangka kerja Anda sendiri yang akan cocok dengan kekokohan dan kualitas kerangka kerja pihak ketiga. Yang mengatakan, mengembangkan kerangka kerja Anda sendiri tampaknya menjadi hak lintas di komunitas PHP, jadi, jangan biarkan saya mencegah Anda dari menulis kelas abstraksi database Anda sendiri.

Berikut ini grafik yang membantu:

masukkan deskripsi gambar di sini

Jake McGraw
sumber
7

Menurut Rasmus Lerdorf , Anda tidak memerlukan kerangka tambahan, karena PHP sendiri merupakan kerangka kerja. http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html

vartec
sumber
baik kawan, saya seorang biginner dan saya mencoba untuk menulis kode saya baru untuk itu dan saya ingin menjadi pengembang inti dari php jadi tolong
kawan
3
Artikel itu dari 2006, dan memalukan dari ketinggalan zaman.
Jonathan Rich
1
@ JonathanRich: artikel itu mungkin sudah ketinggalan zaman, tapi tetap saja sangat menarik!
4

Yah, itu benar-benar tergantung pada ukuran proyek Anda. Sebuah beranda tanpa basis data dan tidak lebih dari 10 halaman, kerangka kerja akan terlalu banyak, terutama karena framewroks selalu membutuhkan banyak konfigurasi dan penyesuaian dalam banyak kasus, agar sesuai dengan kebutuhan spesifik. Dan dalam beberapa situasi mereka mungkin sedikit lebih lambat daripada beberapa halaman yang termasuk dalam file (pikirkan tentang semua kerangka kerja yang perlu dimuat untuk menggunakan fitur-fiturnya.).

Sekarang, jika Anda merencanakan situs ukuran menengah / besar, dengan interaksi basis data, layanan web, dll., Anda akan memerlukan kerangka kerja untuk membantu Anda berinteraksi dengan berbagai teknologi dan mengatur kode Anda sehingga ketika ada masalah, Anda harus habilitie untuk dengan cepat mendeteksi dan memperbaikinya. Juga jika Anda berpikir tentang klien, mereka selalu berubah pikiran tentang perangkat lunak, jadi jika klien perlu memodifikasi atau menambahkan fitur baru, Anda tidak harus melewati semua kode Anda dan berpikir tentang bagaimana cara saya menghubungkan fitur baru ini di semua sphagetti ini.

Ada banyak pro dan kontra lainnya, tetapi ini adalah yang pertama kali terlintas di pikiran saya.

Sunting: Saya menggunakan kerangka kerja symfony di pangkalan harian dan juga melakukan pekerjaan dengan php untuk universitas (saya memiliki beberapa kursus tentang pengembangan web yang tidak diizinkan untuk menggunakan kerangka kerja apa pun), jadi sebagian besar ini berasal dari pengalaman itu.

guiman
sumber
1
baik saya seorang pemula di php dan belum mengembangkan hal besar apa pun dan saya bingung apa yang harus digunakan dan mana yang harus saya gunakan untuk benar-benar saya benar-benar kosong
Tayyab Gulsher Vohra
Langkah pertama adalah tidak menggunakannya, mempelajari teknologi dan cara kerjanya (php, framework, js, css, dll), kemudian setelah Anda memahami dasar pemrograman php, kemudian gunakan kerangka kerja seperti Zend atau Symfony atau CakePHP untuk belajar cara meningkatkan aplikasi Anda
guiman
2

Kamu bercanda kan?

Kebutuhan tergantung pada penggunaan. Komputer tidak diperlukan untuk umat manusia, baik mobil, dll.

Adapun kelebihan / kekurangan, untuk masing-masing itu sendiri!

Saya ingin menunjukkan beberapa kode contoh dari kerangka kerja saya sendiri:

class Product extends DatabaseRow {
    public $name='';
    public $price=0.0;
    public $images=array();
    public $description='';
    public table(){
        return 'products';
    }
}

$p=new Product();
$p->name='Bread';
$p->price=0.5;
$p->images=array('loaf1.jpg','bakery.jpg');
$p->description='Our premium diet bread.';
$p->save();

Lihat apa yang saya lakukan di sana? Kelas itu berfungsi sebagai model untuk sebuah toko. Apa yang istimewa dari OO? Jika tabel, atau kolom apa pun tidak ada, itu dibuat secara dinamis. 0 pasang skrip. Tentu saja, ini adalah fitur spesifik dalam kerangka saya. Tetapi Anda mendapatkan idenya.

Kristen
sumber
saya ingin memberi tahu Anda beberapa hal, sebenarnya saya menggunakan 2 frameworks satu adalah codeigniter dan yang lainnya adalah yii dan saya ingin menjadi pengembang inti tetapi Konsep OOP saya tidak begitu bagus.
Tayyab Gulsher Vohra
Bagaimana Anda membedakan antara pernyataan 'UPDATE' dan 'INSERT' dalam metode $ p-> save ()?
Srisa
@ Srisa - Saya tidak menetapkan ID. Untuk melakukan UPDATE, saya perlu: $p=new Product($the_id); $p->load();The load()adalah untuk penggabungan berturut-turut sebagai lawan Timpa seluruh baris.
Christian
2

Tidak semua aplikasi memerlukan kerangka kerja, tetapi sebagian besar aplikasi konsekuensial.

Keuntungannya adalah:

  • Jangan ulangi diri Anda sendiri - Setiap aplikasi baru memiliki fungsi yang sama dengan banyak aplikasi yang ada. Masuk akal untuk menghindari pengulangan. Kerangka kerja bundel fungsionalitas yang Anda perlukan untuk sebagian besar aplikasi. Akibatnya, Anda akan menghemat waktu (dan uang).
  • Jangan membebani diri sendiri - Pengembangan perangkat lunak secara umum bisa sangat menyakitkan. Masuk akal untuk mengotomatiskan hal-hal duniawi. Kerangka kerja merawat pipa ledeng, sehingga Anda dapat fokus untuk menjadi sangat kreatif. Akibatnya, Anda akan menghemat usaha (dan uang).

Kerugiannya adalah:

  • Cara kami atau tidak sama sekali - Anda mungkin harus mengikuti konvensi kaku kerangka kerja, yang mungkin bertentangan dengan keyakinan dogmatis Anda tentang bagaimana hal-hal harus dilakukan (dan akibatnya membuat Anda marah).
  • Acquired framework syndrome - Anda mungkin menjadi terlalu bergantung pada kerangka kerja untuk menyelesaikan hal-hal paling sederhana sekalipun. Anda akan lupa bagaimana merutekan permintaan, mengakses basis data, memetakan objek ke kueri basis data, dll karena kerangka kerja memegang semua itu.

Secara keseluruhan, lebih baik menggunakannya.


sumber