Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Langkah untuk melaksanakan caching data dan pertanyaan menggunakan rangka kerja CakePHP

Langkah untuk melaksanakan caching data dan pertanyaan menggunakan rangka kerja CakePHP

WBOY
WBOYasal
2023-07-28 14:57:10878semak imbas

Langkah untuk melaksanakan caching data dan pertanyaan menggunakan rangka kerja CakePHP

Dengan pembangunan berterusan teknologi Internet, pemprosesan data dan pertanyaan telah menjadi pautan penting dalam pembangunan aplikasi. Untuk meningkatkan prestasi dan responsif aplikasi, caching data ialah penyelesaian biasa. Apabila menggunakan rangka kerja CakePHP untuk pembangunan aplikasi, anda boleh melaksanakan caching data dan pertanyaan melalui beberapa langkah mudah.

Langkah 1: Pasang rangka kerja CakePHP
Pertama, pastikan PHP dan Komposer telah berjaya dipasang. Kemudian laksanakan arahan berikut pada baris arahan untuk memasang rangka kerja CakePHP:

composer create-project --prefer-dist cakephp/app my_app

Arahan ini akan mencipta folder bernama my_app dalam direktori semasa dan memasang versi terkini rangka kerja CakePHP.

Langkah 2: Buat pangkalan data
Sebelum menggunakan caching data dan pertanyaan, anda perlu mencipta pangkalan data terlebih dahulu. Dalam direktori konfigurasi di bawah folder my_app, anda boleh menemui fail konfigurasi bernama app_local_example.php. Buat salinannya dan namakan semula kepada app_local.php, dan ubah suai mengikut konfigurasi pangkalan data anda sendiri.

Langkah 3: Buat jadual dan model data
Masukkan folder my_app dalam konsol dan laksanakan arahan berikut untuk mencipta jadual data pengguna dan model yang sepadan:

bin/cake bake migration CreateUsers name:string email:string password:string created:timestamp
bin/cake migrate
bin/cake bake model Users

Arahan ini akan mencipta jadual data bernama pengguna, dan Hasilkan model dinamakan Pengguna untuk berinteraksi dengan pangkalan data.

Langkah 4: Laksanakan caching data
Dalam CakePHP, anda boleh menggunakan kelas Cache untuk melaksanakan caching data. Mula-mula, dalam direktori konfigurasi di bawah folder my_app, buka fail app.php, cari bahagian bernama 'Sumber Data', dan ubah suainya kepada kandungan berikut:

'Datasources' => [
    'default' => [
        'className' => CakeDatabaseConnection::class,
        'driver' => CakeDatabaseDriverMysql::class,
        'persistent' => false,
        'host' => 'localhost',
        'username' => 'your_username',
        'password' => 'your_password',
        'database' => 'your_database',
        'encoding' => 'utf8mb4',
        'timezone' => 'UTC',
        'cacheMetadata' => true,
    ],
],

Kemudian, tambahkan kod berikut pada fail model Users.php untuk menambah data Masa cache ditetapkan kepada 1 jam:

namespace AppModelTable;

use CakeCacheCache;
use CakeORMTable;
use CakeORMQuery;

class UsersTable extends Table
{
    public function initialize(array $config) 
    {
        parent::initialize($config);
        $this->addBehavior('Timestamp');
    }

    public function findUsers()
    {
        $query = $this->find('all')
            ->cache(function ($query) {
                return 'users';
            }, '1hour');

        return $query->all();
    }
}

Dalam kod di atas, kami cache data melalui kaedah cache(), di mana parameter pertama ialah nama kunci cache, dan parameter kedua ialah masa cache .

Langkah 5: Laksanakan pertanyaan data
Tambahkan kod berikut dalam fail pengawal UsersController.php untuk melaksanakan pertanyaan data pengguna:

namespace AppController;

use AppControllerAppController;
use CakeORMTableRegistry;

class UsersController extends AppController
{
    public function index()
    {
        $this->loadModel('Users');

        $users = $this->Users->findUsers();

        $this->set(compact('users'));
    }
}

Dalam kod di atas, kami menggunakan kaedah findUsers() untuk mendapatkan data pengguna dan menetapkannya melalui set () kaedah menghantar data ke paparan.

Langkah 6: Paparkan data
Akhir sekali, dalam paparan fail index.ctp, tambah kod berikut untuk memaparkan data pengguna:

foreach ($users as $user) {
    echo $user->name;
    echo $user->email;
}

Dalam kod di atas, kami melintasi data pengguna dan mengeluarkan nama dan alamat e-mel masing-masing.

Melalui pelaksanaan langkah di atas, kami boleh melaksanakan fungsi caching data dan pertanyaan dalam rangka kerja CakePHP. Gunakan kelas Cache untuk cache data, dan pertanyaan serta paparan data melalui model dan pengawal. Ini boleh meningkatkan prestasi dan responsif aplikasi anda. Saya berharap melalui pengenalan artikel ini, pembaca dapat lebih memahami langkah-langkah caching data dan pertanyaan dalam rangka kerja CakePHP.

Atas ialah kandungan terperinci Langkah untuk melaksanakan caching data dan pertanyaan menggunakan rangka kerja CakePHP. 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