migro / php-core-migration
一个提供代码优先方法的PHP数据库迁移库。它设计简单,易于使用,允许开发者直接在代码中定义和管理数据库架构更改。
This package is auto-updated.
Last update: 2024-09-16 01:01:35 UTC
README
描述
此存储库包含在Core PHP中使用代码优先方法的示例和最佳实践。它旨在帮助开发者了解和实施此方法在他们的PHP项目中。
目录
安装
要安装和运行此项目,您需要在计算机上安装PHP和MySQL。
- 克隆此存储库。
- 导航到项目目录。
- 使用您的数据库凭据更新
config.php
文件。
config.php
文件应如下所示
<?php $config = [ "host" => "localhost", "username" => "root", "password" => "", "database" => "php_code_first_approach_db", ];
使用方法
要连接到数据库,您需要从connection.php
文件中调用connectToDatabase
函数。以下是connection.php
文件的外观
<?php function connectToDatabase($config) { $conn = mysqli_connect($config['host'], $config['username'], $config['password'], $config['database'])or die("lost"); if (!$conn) { die('Connection failed: ' . mysqli_connect_error()); } return $conn; }
要在数据库中创建表,您可以使用位于migration
文件夹中的BaseMigration
类的createTable
函数。以下是BaseMigration
类的外观
<?php class BaseMigration { public static function createTable($conn, $sql) { if ($conn->query($sql) === TRUE) { echo "Table created successfully"; } else { echo "Error creating table: " . $conn->error; } } }
BaseMigration
类被其他类扩展以创建特定表。例如,RoleMigration
类在不存在的情况下创建一个tbl_userRoles
表。以下是RoleMigration
类的外观
<?php class RoleMigration extends BaseMigration { public static function up($conn) { $sql = "SHOW TABLES LIKE 'tbl_userRoles'"; $result = $conn->query($sql); if ($result->num_rows == 0) { $sql = "CREATE TABLE tbl_userRoles ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP )"; self::createTable($conn, $sql); echo "tbl_userRoles has created"; }else{ echo "tbl_userRoles already exist"; } } }
在设置数据库连接并定义迁移类之后,您需要执行迁移来在数据库中创建表。这是在Migrate.php
文件中完成的。以下是Migrate.php
文件的外观
<?php require_once '../config/config.php'; require_once '../config/connection.php'; require_once 'BaseMigration.php'; require_once 'RoleMigration.php'; require_once 'UserMigration.php'; $conn = connectToDatabase($config); $roleMigration = RoleMigration::up($conn); $userMigration = UserMigration::up($conn); ?>
如果您已经设置了一个本地服务器环境(如XAMPP、WAMP或MAMP),您也可以通过在浏览器中输入本地服务器URL并附加到Migrate.php
文件的路径来导航到Migrate.php
文件。例如
http:///your_project_directory/database/migrations/Migrate.php
如果您的表不存在,将创建它
如需进一步指导,请访问我的文章https://getsmartsolution.com/code-first-approach-into-core-php/
贡献
目前,此项目仅支持创建表。我正在开发一个完整的Core PHP迁移系统。如果您有任何想法或改进建议,请随时提交pull request。