国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Rumah rangka kerja php ThinkPHP thinkphp mengatasi kaedah kelas asas

thinkphp mengatasi kaedah kelas asas

May 26, 2023 am 09:13 AM

Dalam rangka kerja ThinkPHP5, kelas asas (Base) ialah kelas induk bagi semua pengawal dan mengandungi banyak kaedah penting, seperti: permulaan pengawal, pemaparan templat, output templat, dsb. Dalam pembangunan sebenar, kadangkala kita perlu menulis semula beberapa kaedah dalam kelas asas untuk memenuhi keperluan perniagaan khusus kita. Jadi, bagaimana untuk mengatasi kaedah kelas asas dalam rangka kerja ThinkPHP5? Saya akan pergi secara terperinci di bawah.

Langkah pertama ialah mencari fail kelas asas

Dalam rangka kerja ThinkPHP5, fail kelas asas (Base) berada dalam "thinkController.php". Direktori lalai bagi fail ini ialah "/thinkphp/library/think/", dan fail itu juga boleh didapati melalui "topthink/framework" yang dipasang oleh komposer. Oleh itu, kita perlu mencari fail kelas asas pengawal sebelum kita boleh mengubah suainya.

Langkah kedua ialah menulis kaedah tersuai

Sebelum mengatasi kaedah kelas asas, kita perlu menulis kaedah tersuai. Logik kod kaedah ini perlu ditulis mengikut keperluan perniagaan sebenar, dan ia boleh dipanggil di mana-mana sahaja yang diperlukan dalam pengawal. Sebagai contoh, kita perlu menentukan sama ada pengguna semasa log masuk sebelum output pengawal Jika pengguna semasa tidak log masuk, lompat ke halaman log masuk.

Operasi khusus adalah seperti berikut:

<?php
namespace appindexcontroller;
use thinkController;

class Base extends Controller
{
    public function _initialize()
    {
        parent::_initialize();
        // ...
    }
    
    public function index()
    {
        // ...
    }

    public function checkLogin()
    {
        // 判斷用戶是否登錄
        if(!session('?user_id')) {
            $this->redirect('user/login');
        }
    }
}

Dalam kod sampel di atas, kami menulis kaedah tersuai bernama "checkLogin" untuk menentukan sama ada pengguna telah log masuk. Apabila pengguna tidak log masuk, kaedah ini akan melompat ke halaman log masuk yang ditentukan melalui kaedah ubah hala.

Langkah ketiga ialah menulis semula kaedah kelas asas

Selepas menulis kaedah tersuai kami sendiri, kami boleh mengatasi kaedah kelas asas. Kaedah kelas asas dalam rangka kerja ThinkPHP5 semuanya dilindungi atau kaedah jenis awam Anda biasanya boleh mencapai keperluan perniagaan anda sendiri dengan mewarisi kelas asas dan mengatasi kaedah kelas asas. Sebagai contoh, kita perlu menentukan sama ada pengguna semasa log masuk sebelum keluaran pengawal Jika sudah log masuk, tidak perlu melompat.

Operasi khusus adalah seperti berikut:

<?php
namespace appindexcontroller;
use thinkController;

class Base extends Controller
{
    public function _initialize()
    {
        parent::_initialize();

        $this->checkLogin(); // 調用自定義方法檢測用戶是否登錄
    }
    
    public function index()
    {
        // ...
    }

    // 重寫基類的redirect方法
    protected function redirect($url, $params = array(), $code = 302, $with_prefix = false)
    {
        // 當前用戶已登錄,則直接輸出模板
        if(session('?user_id')) {
            parent::redirect($url, $params, $code, $with_prefix);
        }
        // 當前用戶未登錄,則跳轉至登錄頁面
        else {
            parent::redirect('user/login');
        }
    }
}

Dalam kod contoh di atas, kami mengatasi kaedah ubah hala kelas asas untuk menentukan sama ada pengguna semasa dilog masuk. Apabila pengguna log masuk, templat akan dikeluarkan secara langsung apabila pengguna tidak log masuk, ia akan secara automatik melompat ke halaman log masuk.

Ringkasan

Dalam rangka kerja ThinkPHP5, menulis semula kaedah kelas asas boleh membantu kami merealisasikan keperluan perniagaan kami sendiri. Kaedah kelas asas mengatasi perlu mengikut tandatangan dan semantik kaedah kelas asas, dan pelaksanaan kaedah kelas asas perlu dianalisis dengan teliti sebelum pengubahsuaian. Menulis semula kaedah kelas asas perlu dilakukan dalam pengawal Langkah-langkah khusus termasuk: mula-mula menulis kaedah tersuai anda kemudian menulis semula kaedah kelas asas dan akhirnya memanggil kaedah tersuai di mana diperlukan.

Atas ialah kandungan terperinci thinkphp mengatasi kaedah kelas asas. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1502
276