Rumah pembangunan bahagian belakang tutorial php CodeIgniter middleware: Mempercepatkan caching halaman dan pemprosesan statik aplikasi

CodeIgniter middleware: Mempercepatkan caching halaman dan pemprosesan statik aplikasi

Jul 30, 2023 pm 09:41 PM
codeigniter perisian tengah Cache halaman

CodeIgniter middleware: Mempercepatkan caching halaman dan pemprosesan statik aplikasi

Pengenalan:
Apabila membangunkan aplikasi, meningkatkan kelajuan pemuatan halaman web adalah pertimbangan penting. Caching halaman dan pemprosesan statik adalah cara yang berkesan untuk mencapai matlamat ini. Rangka kerja CodeIgniter menyediakan fungsi middleware yang boleh melaksanakan caching halaman dan pemprosesan statik dengan mudah, dengan itu mempercepatkan kelajuan pemuatan aplikasi.

1. Cache halaman

Cache halaman menjana kandungan halaman web secara dinamik pada pelayan dan secara langsung mengembalikan kandungan cache dalam permintaan berikutnya, mengelakkan kos untuk menjana semula halaman. Rangka kerja CodeIgniter menyediakan kelas caching halaman terbina dalam, dan kami boleh melaksanakan fungsi caching halaman dengan mudah melalui middleware.

1.1 Tetapan fail konfigurasi laluan cache
Pertama, kita perlu menetapkan laluan cache dalam fail konfigurasi. Buka fail config/config.php dan cari kod berikut: config/config.php文件,找到以下代码:

$config['cache_path'] = '';
Salin selepas log masuk

$config['cache_path']设置为缓存路径,例如:

$config['cache_path'] = APPPATH . 'cache/';
Salin selepas log masuk

1.2 创建CacheMiddleware类
接下来,我们创建一个名为CacheMiddleware的类,实现页面缓存功能。打开app/Middleware目录,创建一个名为CacheMiddleware.php的文件,并将以下代码复制到文件中:

<?php
defined('BASEPATH') or exit('No direct script access allowed');

class CacheMiddleware
{
    protected $CI;
    
    public function __construct()
    {
        $this->CI =& get_instance();
    }
    
    public function handle()
    {
        if ($this->CI->input->server('REQUEST_METHOD') == 'GET')
        {
            $this->CI->load->driver('cache', array('adapter' => 'file'));
            
            $cache_key = md5(uri_string());
            if ($this->CI->cache->get($cache_key))
            {
                echo $this->CI->cache->get($cache_key);
                exit();
            }
            else
            {
                ob_start();
            }
        }
    }
    
    public function terminate()
    {
        if ($this->CI->input->server('REQUEST_METHOD') == 'GET')
        {
            $output = ob_get_contents();
            ob_end_flush();
            
            $cache_key = md5(uri_string());
            $this->CI->cache->save($cache_key, $output, 3600);
        }
    }
}
Salin selepas log masuk

1.3 注册中间件
然后,打开app/Config/App.php文件,找到以下代码:

public $middleware = [];
Salin selepas log masuk
Salin selepas log masuk

$middleware数组添加一个元素,并将CacheMiddleware类添加到数组中:

public $middleware = [
    AppMiddlewareCacheMiddleware::class
];
Salin selepas log masuk

1.4 测试页面缓存
现在,我们已经配置好了页面缓存。打开你的应用程序,在浏览器中访问一个页面,然后刷新页面。你会发现第二次刷新时,页面加载速度显著提高,原因是页面内容被缓存起来了。

二、静态化处理

静态化处理是将动态生成的网页内容保存为静态HTML文件,直接返回给用户,省去了动态生成的过程。CodeIgniter框架提供了相关函数可以实现静态化处理。

2.1 创建StaticMiddleware类
接下来,我们创建一个名为StaticMiddleware的类,实现页面静态化处理。打开app/Middleware目录,创建一个名为StaticMiddleware.php的文件,并将以下代码复制到文件中:

<?php
defined('BASEPATH') or exit('No direct script access allowed');

class StaticMiddleware
{
    protected $CI;
    
    public function __construct()
    {
        $this->CI =& get_instance();
    }
    
    public function handle()
    {
        if ($this->CI->input->server('REQUEST_METHOD') == 'GET')
        {
            $file_path = APPPATH . 'static/' . uri_string() . '.html';
            if (file_exists($file_path))
            {
                echo file_get_contents($file_path);
                exit();
            }
            else
            {
                ob_start();
            }
        }
    }
    
    public function terminate()
    {
        if ($this->CI->input->server('REQUEST_METHOD') == 'GET')
        {
            $output = ob_get_contents();
            ob_end_flush();
            
            $file_path = APPPATH . 'static/' . uri_string() . '.html';
            file_put_contents($file_path, $output);
        }
    }
}
Salin selepas log masuk

2.2 注册中间件
然后,打开app/Config/App.php文件,找到以下代码:

public $middleware = [];
Salin selepas log masuk
Salin selepas log masuk

$middleware数组添加一个元素,并将StaticMiddleware类添加到数组中:

public $middleware = [
    AppMiddlewareStaticMiddleware::class
];
Salin selepas log masuk

2.3 测试静态化处理
现在,我们已经配置好了静态化处理。打开你的应用程序,在浏览器中访问一个页面,然后刷新页面。你会发现一个以当前URL命名的HTML文件被保存在app/static/rrreee

Tetapkan $config['cache_path'] ke laluan cache, contohnya:

rrreee
1.2 Cipta Kelas CacheMiddleware

Seterusnya, kami mencipta kelas bernama CacheMiddleware untuk melaksanakan fungsi caching halaman. Buka direktori app/Middleware, buat fail bernama CacheMiddleware.php dan salin kod berikut ke dalam fail: 🎜rrreee🎜1.3 Daftar Middleware 🎜Kemudian, buka app/Config/App.php fail, cari kod berikut: 🎜rrreee🎜Tambahkan elemen pada tatasusunan $middleware dan tambahkan kelas CacheMiddleware Ke dalam tatasusunan: 🎜rrreee🎜1.4 Uji cache halaman🎜Kini, kami telah mengkonfigurasi cache halaman. Buka apl anda, lawati halaman dalam penyemak imbas anda dan muat semula halaman tersebut. Anda akan mendapati bahawa kelajuan memuatkan halaman meningkat dengan ketara pada muat semula kedua kerana kandungan halaman dicache. 🎜🎜2. Pemprosesan statik🎜🎜Pemprosesan statik adalah untuk menyimpan kandungan halaman web yang dijana secara dinamik sebagai fail HTML statik dan mengembalikannya terus kepada pengguna, menghapuskan keperluan untuk penjanaan dinamik. Rangka kerja CodeIgniter menyediakan fungsi berkaitan untuk mencapai pemprosesan statik. 🎜🎜2.1 Cipta kelas StaticMiddleware🎜Seterusnya, kami mencipta kelas bernama StaticMiddleware untuk melaksanakan pemprosesan statik halaman. Buka direktori app/Middleware, buat fail bernama StaticMiddleware.php dan salin kod berikut ke dalam fail: 🎜rrreee🎜2.2 Daftar Middleware 🎜Kemudian, buka app/Config/App.php fail, cari kod berikut: 🎜rrreee🎜Tambahkan elemen pada tatasusunan $middleware dan tambahkan kelas StaticMiddleware ke dalam tatasusunan: 🎜rrreee🎜2.3 Uji pemprosesan statik🎜Kini, kami telah mengkonfigurasi pemprosesan statik. Buka apl anda, lawati halaman dalam penyemak imbas anda dan muat semula halaman tersebut. Anda akan mendapati bahawa fail HTML yang dinamakan dengan URL semasa disimpan dalam direktori app/static/ Kandungan halaman akan dimuatkan terus daripada fail HTML dan kelajuan pemuatan lebih cepat daripada yang dijana secara dinamik muka surat. 🎜🎜Kesimpulan: 🎜 Melaksanakan cache halaman dan pemprosesan statik melalui perisian tengah boleh meningkatkan kelajuan pemuatan aplikasi dengan ketara. Dalam rangka kerja CodeIgniter, kita hanya perlu melaksanakan kelas middleware dan mendaftarkannya dalam aplikasi untuk melaksanakan fungsi ini dengan mudah. Apabila menggunakan fungsi middleware, kita perlu mempertimbangkan masa cache dan laluan cache yang sesuai untuk mendapatkan peningkatan prestasi terbaik. 🎜

Atas ialah kandungan terperinci CodeIgniter middleware: Mempercepatkan caching halaman dan pemprosesan statik aplikasi. 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

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.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

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)

Apakah prinsip perisian tengah tomcat Apakah prinsip perisian tengah tomcat Dec 27, 2023 pm 04:40 PM

Prinsip perisian tengah tomcat dilaksanakan berdasarkan spesifikasi Java Servlet dan Java EE. Sebagai bekas Servlet, Tomcat bertanggungjawab untuk memproses permintaan dan respons HTTP dan menyediakan persekitaran berjalan untuk aplikasi Web. Prinsip-prinsip perantara Tomcat terutamanya melibatkan: 1. Model kontena 2. Mekanisme pemprosesan Servlet 5. Pengurusan konfigurasi 7. Penyambung dan pengimbangan; teknologi; 9. Mod terbenam, dsb.

Cara menggunakan perisian tengah untuk transformasi tindak balas dalam Laravel Cara menggunakan perisian tengah untuk transformasi tindak balas dalam Laravel Nov 03, 2023 am 09:57 AM

Cara menggunakan middleware untuk penukaran respons dalam Laravel Middleware ialah salah satu ciri yang sangat berkuasa dan praktikal dalam rangka kerja Laravel. Ia membolehkan kami memproses permintaan dan respons sebelum permintaan memasuki pengawal atau sebelum respons dihantar kepada klien. Dalam artikel ini, saya akan menunjukkan cara menggunakan perisian tengah untuk transformasi respons dalam Laravel. Sebelum memulakan, pastikan anda memasang Laravel dan projek baharu dibuat. Sekarang kita akan mengikuti langkah berikut: Cipta perisian tengah baru Terbuka

Cara menggunakan perisian tengah untuk pecutan data dalam Laravel Cara menggunakan perisian tengah untuk pecutan data dalam Laravel Nov 02, 2023 am 09:40 AM

Cara menggunakan perisian tengah untuk pecutan data dalam Laravel Pengenalan: Apabila membangunkan aplikasi web menggunakan rangka kerja Laravel, pecutan data adalah kunci untuk meningkatkan prestasi aplikasi. Middleware ialah ciri penting yang disediakan oleh Laravel yang mengendalikan permintaan sebelum ia mencapai pengawal atau sebelum respons dikembalikan. Artikel ini akan menumpukan pada cara menggunakan perisian tengah untuk mencapai pecutan data dalam Laravel dan memberikan contoh kod khusus. 1. Apakah middleware itu adalah mekanisme dalam rangka kerja Laravel

Cara mengendalikan pengesahan borang menggunakan middleware dalam Laravel Cara mengendalikan pengesahan borang menggunakan middleware dalam Laravel Nov 02, 2023 pm 03:57 PM

Cara menggunakan perisian tengah untuk mengendalikan pengesahan borang dalam Laravel, contoh kod khusus diperlukan Pengenalan: Pengesahan borang ialah tugas yang sangat biasa dalam Laravel. Untuk memastikan kesahihan dan keselamatan data yang dimasukkan oleh pengguna, kami biasanya mengesahkan data yang diserahkan dalam borang. Laravel menyediakan fungsi pengesahan borang yang mudah dan juga menyokong penggunaan perisian tengah untuk mengendalikan pengesahan borang. Artikel ini akan memperkenalkan secara terperinci cara menggunakan perisian tengah untuk mengendalikan pengesahan borang dalam Laravel dan memberikan contoh kod khusus.

Cara menggunakan perisian tengah untuk penjadualan tugas berjadual dalam Laravel Cara menggunakan perisian tengah untuk penjadualan tugas berjadual dalam Laravel Nov 02, 2023 pm 02:26 PM

Cara menggunakan perisian tengah untuk penjadualan tugas berjadual dalam Laravel Pengenalan: Laravel ialah rangka kerja sumber terbuka PHP yang popular yang menyediakan alatan yang mudah dan berkuasa untuk membangunkan aplikasi web. Salah satu ciri penting ialah penjadualan tugas bermasa, yang membolehkan pembangun menjalankan tugas tertentu pada selang waktu tertentu. Dalam artikel ini, kami akan memperkenalkan cara menggunakan perisian tengah untuk melaksanakan penjadualan tugas berjadual Laravel dan menyediakan contoh kod khusus. Persediaan Persekitaran Sebelum bermula, kita perlu pastikan

Cara menyediakan perkongsian sumber merentas domain (CORS) menggunakan perisian tengah dalam rangka kerja Slim Cara menyediakan perkongsian sumber merentas domain (CORS) menggunakan perisian tengah dalam rangka kerja Slim Jul 30, 2023 pm 08:34 PM

Cara menyediakan Perkongsian Sumber Silang Asal (CORS) menggunakan perisian tengah dalam rangka kerja Slim Perkongsian Sumber Silang Asal (CORS) ialah mekanisme yang membolehkan pelayan menetapkan beberapa maklumat tambahan dalam pengepala respons HTTP untuk memberitahu penyemak imbas sama ada Benarkan silang -permintaan asal. Dalam sesetengah projek dengan pemisahan bahagian hadapan dan bahagian belakang, mekanisme CORS boleh digunakan untuk merealisasikan permintaan silang domain bahagian hadapan untuk antara muka bahagian belakang. Apabila menggunakan rangka kerja Slim untuk membangunkan REST API, kita boleh menggunakan middleware (Middleware)

Analisis hubungan antara fungsi komunikasi masa nyata PHP dan perisian tengah push mesej Analisis hubungan antara fungsi komunikasi masa nyata PHP dan perisian tengah push mesej Aug 10, 2023 pm 12:42 PM

Analisis hubungan antara fungsi komunikasi masa nyata PHP dan perisian tengah push mesej Dengan perkembangan Internet, kepentingan fungsi komunikasi masa nyata dalam aplikasi Web telah menjadi semakin menonjol. Komunikasi masa nyata membolehkan pengguna menghantar dan menerima mesej dalam masa nyata dalam aplikasi, dan boleh digunakan pada pelbagai senario, seperti sembang masa nyata, pemberitahuan segera, dsb. Dalam bidang PHP, terdapat banyak cara untuk melaksanakan fungsi komunikasi masa nyata, dan salah satu cara biasa ialah menggunakan perisian tengah tolak mesej. Artikel ini akan memperkenalkan hubungan antara fungsi komunikasi masa nyata PHP dan perisian tengah push mesej, dan cara menggunakan push mesej

Cara menggunakan perisian tengah untuk sokongan berbilang bahasa dalam Laravel Cara menggunakan perisian tengah untuk sokongan berbilang bahasa dalam Laravel Nov 03, 2023 pm 01:07 PM

Laravel ialah rangka kerja PHP yang digunakan secara meluas yang menyediakan banyak ciri dan alatan yang mudah, termasuk perisian tengah yang menyokong berbilang bahasa. Dalam artikel ini, kami akan memperincikan cara menggunakan perisian tengah untuk melaksanakan sokongan berbilang bahasa Laravel dan menyediakan beberapa contoh kod khusus. Mengkonfigurasi pek bahasa Mula-mula, kita perlu mengkonfigurasi pek bahasa Laravel supaya ia boleh menyokong berbilang bahasa. Dalam Laravel, pakej bahasa biasanya diletakkan dalam direktori sumber/lang, di mana setiap bahasa

See all articles