Rumah  >  Artikel  >  rangka kerja php  >  Apakah perbezaan antara thinkphp3.2 dan 5.0?

Apakah perbezaan antara thinkphp3.2 dan 5.0?

青灯夜游
青灯夜游asal
2022-02-14 17:41:271983semak imbas

Perbezaan: 1. 3.2 menyokong corak URL biasa dan definisi laluan biasa, tetapi 5.0 tidak; Versi 4. 5.0 meninggalkan kebanyakan takrif malar asal dan hanya mengekalkan takrif malar laluan rangka kerja.

Apakah perbezaan antara thinkphp3.2 dan 5.0?

Persekitaran pengendalian tutorial ini: sistem Windows 7, versi thinkphp v5.0, komputer Dell G3.

Perbezaan antara thinkphp5.0 dan thinkphp 3.2

Perbezaan antara versi 5.0 dan versi sebelumnya agak besar. Artikel ini adalah untuk pengguna biasa dengan versi 3.2 Berikut ialah beberapa perbezaan utama 5.0.

URL dan penghalaan

5.0 Akses URL tidak lagi menyokong mod URL biasa dan penghalaan tidak menyokong definisi laluan biasa . Sebaliknya, semuanya ditukar kepada penghalaan peraturan dengan peraturan pembolehubah (takrif biasa):

Peningkatan utama adalah seperti berikut;

  • Tambah peraturan pembolehubah penghalaan;
  • Tambah pembolehubah gabungan Sokongan;
  • Tambahkan penghalaan sumber;
  • Sokong peraturan penghalaan URL anti-penghuraian;
  • Minta objek dan objek tindak balas

Objek permintaan baharu dan objek respons , memproses permintaan secara seragam dan mendapatkan maklumat permintaan, dan objek bertanggungjawab untuk mengeluarkan respons klien atau penyemak imbas.

5.0RequestModul dan PengawalResponseRequestResponse

Ruang nama pengawal telah dilaraskan dan tidak perlu mewarisi mana-mana kelas pengawal.

Ruang nama aplikasi disatukan kepada (boleh ditentukan) bukannya nama modul;

Nama kelas pengawal tidak mempunyai akhiran

secara lalai dan boleh dikonfigurasikan untuk menghidupkan

Parameter mendayakan akhiran kelas pengawal; - dan kaedah selepas operasi;
  • Ditambah app definisi atribut pra-operasi; pengawal;
  • Controlleruse_controller_suffix
  • Pangkalan Data
  • return
  • Fungsi pertanyaan pangkalan data 5.0 telah dipertingkatkan pertanyaan rantaian yang asalnya perlu digunakan model boleh dipanggil terus melalui kelas
  • Fungsi
  • asal Panggilan boleh menggunakan fungsi beforeActionList sebaliknya, contohnya:
  • versi 3.2
  • .

Versi 5.0

Peningkatan utama adalah seperti berikut:

DbM menyokong operasi pertanyaan rantaian; pertanyaan data menyokong mengembalikan objek, tatasusunan dan db objek;

pertanyaan set data menyokong Array yang dikembalikan dan menambah pembina pertanyaan dan mengubah sintaks pertanyaan; > menyokong pertanyaan penutupan;

menyokong pertanyaan blok;
M('User')->where(['name'=>'thinkphp'])->find();

Menyokong pertanyaan paparan; > model

db('User')->where('name','thinkphp')->find();

perubahan model adalah Yang terbesar, pada asasnya model adalah konsep berorientasikan objek sepenuhnya, termasuk model yang berkaitan Imbuhan kelas model tidak lagi membawa

, tetapi dibezakan secara langsung oleh ruang nama Panggilan fungsi
    asal ditukar kepada fungsi
  • , dan mesti Cipta kelas model yang sepadan, contohnya:
  • PDOStatementVersi 3.2
  • Collection
  • Versi 5.0
  • Peningkatan utama Termasuk:
  • Bina semula model persatuan; >Sokong model pengagregatan;
  • Mansuhkan model paparan (tukar kepada kaedah pertanyaan paparan pangkalan data
Peluasan model menggunakan mekanisme

; pengambil dan pengubah suai; menambah penulisan automatik cap waktu;

5.0Pengesahan automatik dan pelengkapan automatikModelDmodel

Pengesahan data automatik dan penyiapan automatik 5.0 agak berbeza daripada versi 3.2 5.0 mengguna pakai definisi pengesah dan melaksanakan pengesahan bersatu melalui kelas

. Penyiapan automatik dicapai dengan mentakrifkan pengubah suai dalam model.

D('User')->where(['name'=>'thinkphp'])->find();
Pengecualian

model('User')->where('name','thinkphp')->find();
Toleransi sifar untuk ralat, secara lalai pengecualian akan dilemparkan untuk sebarang tahap ralat (tetapi boleh digunakan dalam aplikasi Tahap ralat ditetapkan dalam fail awam), dan halaman pengecualian direka bentuk semula untuk memaparkan maklumat ralat terperinci untuk penyahpepijatan yang mudah.

  • Penyahpepijatan dan pengelogan
  • halaman
  • telah dipertingkatkan untuk menyokong tontonan konsol penyemak imbas maklumat Trace. Trait
  • pemacu log menambah
  • kaedah dan menggunakan
  • untuk menyokong penyahpepijatan jauh.
  • Malar
  • 5.0版本废弃了原来的大部分常量定义,仅仅保留了框架的路径常量定义,其余的常量可以使用App类或者Request类的相关属性或者方法来完成,或者自己重新定义需要的常量。

    废除的常量包括:

REQUEST_METHOD IS_GET IS_POST IS_PUT IS_DELETE IS_AJAX __EXT__ COMMON_MODULE MODULE_NAME CONTROLLER_NAME ACTION_NAME APP_NAMESPACE APP_DEBUG MODULE_PATH

函数

5.0版本核心框架不依赖任何自定义函数,但仍然封装了一些常用功能到助手函数,你可以随意重新定义或者增加助手函数。

【相关教程推荐:thinkphp框架

Atas ialah kandungan terperinci Apakah perbezaan antara thinkphp3.2 dan 5.0?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Apakah cara berfikirphp?Artikel seterusnya:Apakah cara berfikirphp?