mattsmithdev/pdo-repo-project

一个项目模板,用于简化创建新的pdo-crud-for-free-repositories项目的操作。

v1.1.8 2022-06-23 09:59 UTC

This package is auto-updated.

Last update: 2024-09-23 15:13:46 UTC


README

此示例项目展示了如何使用PHP包

所有代码(旨在)都遵循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服务器运行的任何端口

screenshot of browser

关于此项目

此项目的功能可以概括如下

  • 单个'前端控制器'文件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月