CakePHP ialah rangka kerja PHP MVC popular yang menyediakan pelbagai alatan dan ciri untuk membantu pembangun mencipta aplikasi web yang cekap. Phinx ialah perpustakaan migrasi pangkalan data yang fleksibel yang membantu pembangun mengurus perubahan pangkalan data dengan mudah. Artikel ini akan memperkenalkan cara menggunakan Phinx dengan CakePHP.
Pasang Phinx menggunakan Komposer:
composer require robmorgan/phinx
Setelah pemasangan selesai, anda akan mempunyai Phinx dalam direktori vendor/bin
aplikasi anda Boleh Laksana fail.
Buat fail baharu phinx.php dalam direktori app/config dan tambah kandungan berikut.
use CakeCoreConfigure; return [ 'paths' => [ 'migrations' => [ __DIR__ . '/../config/Migrations', ], 'seeds' => [ __DIR__ . '/../config/Seeds', ], ], 'environments' => [ 'default_migration_table' => 'phinxlog', 'default_database' => 'default', 'default' => [ 'adapter' => 'mysql', 'host' => '127.0.0.1', 'name' => 'mydatabase', 'user' => 'myuser', 'pass' => 'mypassword', 'port' => '3306', 'charset' => 'utf8' ], ] ];
Fail konfigurasi ini mengarahkan Phinx untuk mencari migrasi dan fail benih dalam direktori config/Migrations
dan config/Seeds
aplikasi dan menggunakan MySQL untuk menyambung ke pangkalan data bernama mydatabase
.
Buat fail migrasi baharu dalam direktori config/Migrations
, contohnya CreateUsersTable.php
. Fail migrasi harus mentakrifkan kaedah up
dan down
untuk melaksanakan atau membuat asal migrasi pada pangkalan data.
Contoh:
use PhinxMigrationAbstractMigration; class CreateUsersTable extends AbstractMigration { public function change() { $table = $this->table('users'); $table->addColumn('username', 'string', ['limit' => 20]) ->addColumn('password', 'string', ['limit' => 100]) ->addColumn('email', 'string', ['limit' => 50]) ->addColumn('created', 'datetime') ->addColumn('updated', 'datetime') ->create(); } }
Fail migrasi ini akan mencipta jadual users
baharu dalam pangkalan data dan menambah username
, password
, email
, created
dan updated
Lajur.
Jalankan migrasi menggunakan arahan berikut:
vendor/bin/phinx migrate
Arahan ini akan menjalankan semua fail migrasi yang berada dalam status belum selesai (tidak digunakan) .
Anda boleh melancarkan semula penghijrahan ke keadaan sebelumnya menggunakan:
vendor/bin/phinx rollback
Jika anda mahu kembali ke keadaan sebelum penghijrahan tertentu, gunakan arahan berikut:
vendor/bin/phinx rollback -t {timestamp}
Di mana {timestamp}
adalah cap masa penghijrahan untuk digulung semula.
Buat fail benih baharu dalam direktori config/Seeds
, contohnya UsersSeeders.php
. Fail benih harus menentukan kaedah run
yang akan mengisi jadual yang sepadan dengan kriteria tertentu.
Contoh:
use PhinxSeedAbstractSeed; class UsersSeeder extends AbstractSeed { public function run() { $data = [ [ 'username' => 'admin', 'password' => password_hash('123456', PASSWORD_DEFAULT), 'email' => 'admin@example.com', 'created' => date('Y-m-d H:i:s'), 'updated' => date('Y-m-d H:i:s') ], [ 'username' => 'user1', 'password' => password_hash('password', PASSWORD_DEFAULT), 'email' => 'user1@example.com', 'created' => date('Y-m-d H:i:s'), 'updated' => date('Y-m-d H:i:s') ] ]; $table = $this->table('users'); $table->insert($data)->save(); } }
Torrent ini akan memasukkan dua pengguna awal ke dalam jadual users
.
Jalankan semua fail torrent menggunakan arahan berikut:
vendor/bin/phinx seed:run
Arahan ini akan menjalankan semua torrent yang berada dalam status belum selesai (tidak digunakan ) dokumen.
Anda boleh menjalankan torrent tertentu menggunakan arahan berikut:
vendor/bin/phinx seed:run -s {seederName}
di mana {seederName}
ialah nama torrent yang anda mahu jalankan.
Sekarang anda tahu cara menggunakan Phinx dengan CakePHP, mula cuba menggunakannya untuk mengurus perubahan pangkalan data anda!
Atas ialah kandungan terperinci Bagaimana untuk menggunakan Phinx dengan CakePHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!