mattsmithdev / pdo-repo-project
一个项目模板,用于简化创建新的pdo-crud-for-free-repositories项目的操作。
Requires
README
此示例项目展示了如何使用PHP包
-
pdo-crud-for-free-repositories
- 访问该存储库并查看README以了解如何使用库...
所有代码(旨在)都遵循PSR-1、PSR-12编码标准。类遵循PSR-4自动加载标准。
安装 1 - 将文件放置在您的计算机上
通过Composer的create-project选项,将demo1改为您希望项目文件夹名称的内容
composer create-project mattsmithdev/pdo-repo-project demo1
通过Git克隆
$ git clone git@github.com:dr-matt-smith/pdo-crud-for-free-repositories-sample-project.git
或直接从GitHub下载项目的ZIP文件。
安装 2 - 在/.env中声明您的MySQL数据库设置
文件.env定义了DB访问所需的5个必需的常量。
您需要一个运行中的MySQL(或兼容)数据库服务器才能使用此项目。确保您知道DB用户名和密码,以便程序连接并与数据库服务器通信。
根据您的MySQL配置更新它们
MYSQL_USER=root
MYSQL_PASSWORD=passpass
MYSQL_HOST=127.0.0.1
MYSQL_PORT=3306
MYSQL_DATABASE=evote
注意:这些变量名称选择是为了便于部署到Fortrabbit https://www.fortrabbit.com/
- 你可能认为他们应该为我买杯咖啡或类似的东西来为我做广告... :-)
安装 3 - 运行迁移和初始数据固定脚本
为您设置了一个Composer脚本快捷方式:"setupdb": "php db/migrateAndLoadFixtures.php"
因此,您只需在命令行中输入
$ composer setupdb
在db文件夹中有一个名为migrateAndLoadFixtures.php的文件。通过运行此脚本,您将创建数据库表movie,并插入2个初始记录(具有自增ID)
$movieRepository->createAndInsert('Jaws', 9.99, 'horror'); $movieRepository->createAndInsert('Jumanji', 7, 'entertainment');
如果数据库和表不存在,将自动创建。
运行Web服务器
运行您的Web服务器,将/public作为Web根目录
$ php -S localhost:8000 -t public
或使用Composer脚本快捷方式
$ composer serve
打开浏览器
打开浏览器到https://:8000
或Web服务器运行的任何端口
关于此项目
此项目的功能可以概括如下
- 单个'前端控制器'文件
public/index.php创建一个Application对象并调用其run()方法 run()方法检查url编码变量action- 如果url编码变量
action的值为movies,则调用方法Application->list_movies(),否则调用方法Application->index() Application->index()显示模板文件templates/homepage.php- 一个基本的首页,带有2个导航栏(到首页和电影列表)Application->listMovies()创建一个MovieRepository对象并使用其findAll()方法创建一个包含从数据库表movie检索的每一行的Movie对象的数组,然后显示模板文件templates/movies_list.php- 一个循环遍历$movies数组的页面,并显示2个导航栏(到首页和电影列表)
Movie类是一个简单的实体类 - 具有一个int id属性,电影对象属性(如标题和价格),以及公共getter和setter。
MovieRepository 类扩展了库类 Mattsmithdev\PdoCrudRepo\DatabaseTableRepository(该类已被 Composer 复制到 vendor 目录)。这些库类提供了一个非常简单的 ORM(对象关系映射器),允许进行基本的 CRUD 操作,无需手动创建数据库连接或编写 SQL 等。
有关pdo-crud-for-free-repositories库的更多信息,请参阅该项目在Github上的页面
祝您玩得开心
.. 马特·史密斯 .. 2022年6月
