CodeIgniter middleware: Menyediakan pemprosesan caching automatik untuk aplikasi
Pengenalan:
Dalam proses membangunkan aplikasi web, adalah sangat penting untuk mengoptimumkan prestasi aplikasi. Salah satu teknik pengoptimuman yang biasa ialah caching. Caching boleh mengurangkan bilangan pertanyaan pangkalan data dan beban pelayan dengan ketara, dengan itu meningkatkan responsif aplikasi. CodeIgniter menyediakan fungsi middleware untuk melaksanakan pemprosesan caching automatik dengan mudah. Artikel ini akan memperkenalkan cara menggunakan perisian tengah dalam CodeIgniter untuk cache hasil output aplikasi.
1. Apakah itu middleware?
Middleware ialah mekanisme yang melakukan beberapa operasi antara aplikasi memproses permintaan dan menjana respons. Dalam CodeIgniter, middleware boleh digunakan untuk memintas permintaan dan melaksanakan beberapa operasi yang telah ditetapkan, seperti menyemak pengesahan pengguna, mengubah suai parameter permintaan, dsb.
2. Mengapa menggunakan perisian tengah untuk mengendalikan caching?
Menggunakan perisian tengah untuk mengendalikan caching boleh mencapai penggunaan semula dan automasi logik caching. Dengan memintas permintaan dan menyemak sama ada data yang sepadan sudah wujud dalam cache, middleware boleh mengelak daripada membuat pertanyaan berulang kali ke pangkalan data dan menjana respons yang sama. Ini boleh meningkatkan prestasi aplikasi dan responsif dengan ketara. .
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class CacheMiddleware implements Middleware { private $CI; public function __construct() { $this->CI =& get_instance(); $this->CI->load->driver('cache'); } public function handle(Request $request, Closure $next) { $cacheKey = md5($request->getUri()->getBaseUrl() . $request->getUri()->getPath()); if ($this->CI->cache->get($cacheKey)) { return $this->CI->cache->get($cacheKey); } else { $response = $next($request); $this->CI->cache->save($cacheKey, $response, 3600); // 缓存1小时 return $response; } } } ?>
$autoload['libraries'] = array('cache');
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class ExampleController extends CI_Controller { public function __construct() { parent::__construct(); $this->middleware(['CacheMiddleware']); } public function index() { $this->output->set_output('Hello, World!'); } } ?>
CacheMiddleware
memintas permintaan dan menyemak cache yang sepadan. Jika data yang sepadan sudah wujud dalam cache, hasil cache dikembalikan secara langsung, jika tidak, permintaan akan terus diproses dan hasil tindak balas dijana, dan hasilnya disimpan dalam cache.
$this->middleware(['MiddlewareName'])
dalam pembina untuk menggunakan middleware pada pengawal yang ditentukan. CacheMiddleware
中间件拦截了请求,并检查了相应的缓存。如果缓存中已经存在相应的数据,直接返回缓存结果;否则,继续处理请求并生成响应结果,并将结果存入缓存中。
中间件可以应用于整个应用程序或特定的控制器或路由。只需在构造函数中调用$this->middleware(['MiddlewareName'])
Melalui langkah dan kod contoh di atas, saya berharap pembaca dapat melaksanakan pemprosesan caching automatik dalam aplikasi CodeIgniter mereka sendiri dan meningkatkan prestasi aplikasi.
Atas ialah kandungan terperinci CodeIgniter middleware: Menyediakan pengendalian cache automatik untuk aplikasi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!