Perbezaan: 1. CI tidak memaksa templat yang mengikat untuk beroperasi pada pangkalan data, tetapi ThinkPHP melakukannya; 2. ThinkPHP memberi perhatian kepada kemudahan penggunaan dan menyediakan banyak pembantu fungsi, manakala penggunaan CI lebih menyusahkan; dan panjang; 3. Fail paparan CI tidak boleh dikonfigurasikan, manakala fail paparan TP boleh dikonfigurasikan. 4. TP menyediakan pelbagai kaedah penyahpepijatan, tetapi CI tidak.
Persekitaran pengendalian tutorial ini: sistem Windows 7, versi thinkphp v5.1, komputer Dell G3.
Bandingkan fungsi ThinkPHP dan CI:
Model: Templat adalah setara dengan operasi data Terdapat banyak bentuk storan: seperti pangkalan data, sistem fail, memori, dll. CI tidak memaksa templat yang mengikat untuk beroperasi pada pangkalan data, dan ThinkPHP (selepas ini dirujuk sebagai TP) sangat berkaitan dengan operasi pangkalan data secara lalai Memang benar bahawa data yang dikendalikan dalam amalan secara amnya adalah daripada pangkalan data, tetapi apakah yang perlu kita lakukan jika kami mahu mengendalikan data jenis storan lain? Malah, TP hanya menyediakan banyak antara muka yang mudah untuk mengendalikan data Selagi antara muka ini tidak digunakan, ia masih tidak berganding dan pemacu jenis storan boleh dikonfigurasikan, sebagai contoh, ia boleh ditukar kepada operasi data. Jadi TP adalah lebih mudah.
Penggunaan ruang nama. Pihak CI tidak menyedari kemudahan dan keanggunan yang dibawa oleh ruang nama. Apabila CI menggunakan $this->load() untuk mengimport dua model daripada modul yang berbeza, percanggahan seharusnya boleh diatasi, tetapi ia menyusahkan untuk digunakan.
TP sangat mementingkan kemudahan penggunaan, jadi ia menyediakan banyak pembantu fungsi Secara amnya, penggunaan biasa ialah $a=Class::function();, dan selepasnya menggunakan pembantu, ia biasanya $a = class();, ia lebih mudah bergantung pada cara anda membiasakannya. CI akan menyusahkan dan membosankan untuk menulis $this->class->function().
Mari bincang tentang paparan dan templat. Lokasi penyimpanan fail paparan CI berada di bawah aplikasi/pandangan, dan ia tidak boleh dikonfigurasikan Sekurang-kurangnya saya tidak menemui tempat di mana ia boleh dikonfigurasikan. Direktori paparan TP boleh dikonfigurasikan dan tidak semestinya perlu berada di bawah aplikasi, memberikan kemudahan yang lebih besar untuk akses selamat dan penyesuaian dan penggantian paparan.
Untuk templat, pelaksanaan CI agak tidak berguna Walaupun terdapat kelas penghuraian templat $this->load->library('parser'); yang boleh dimuatkan melalui kod di sebelah kiri penggantian mudah pembolehubah. Struktur kawalan yang lebih kompleks tidak dapat dilaksanakan, dan pada akhirnya ia perlu dilaksanakan dengan kod PHP asli (saya rasa pegawai itu juga menyokong penggunaan asli, lagipun, asli tidak memerlukan banyak parsing, adalah lebih baik dalam kecekapan, dan tidak perlu mempelajari set sintaks baharu).
Templat TP lebih komprehensif dan matang, dan mempunyai set sintaks mereka sendiri Pada asasnya, tidak perlu mencampurkan dalam PHP asli PHP, tetapi hanya belajar sintaks templat. Pembahagian kerja antara bahagian depan dan belakang menjadi lebih jelas.
Sekarang saya memikirkannya, terdapat perbezaan besar antara struktur direktori MVC CI dan TP:
CI mempunyai satu direktori setiap satu untuk pengawal, paparan, dan model, dan modul mempunyai satu direktori setiap satu Bahagian ini berdasarkan mencipta subdirektori baharu di bawah setiap direktori di atas sebagai direktori modul, atau hanya mencipta pengawal dan model secara langsung dalam direktori tanpa konsep modul.
TP menggunakan modul sebagai unit pengasingan asas Secara lalai, terdapat direktori pengawal, paparan dan model di bawah direktori yang sepadan dengan setiap templat.
Bagi penyahpepijatan, TP pastinya beberapa langkah di hadapan CI Kaedah rasminya ialah:
<.>
CI hanya boleh mencetak sementara panggilan yang salah, walaupun ini boleh menyelesaikan lebih daripada 60% masalah. [Cadangan tutorial berkaitan:rangka kerja thinkphp]
Atas ialah kandungan terperinci Apakah perbezaan antara rangka kerja ci dan thinkphp. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!