emeraldion/emerails

Rails-like LAMP 网络应用框架

dev-master 2024-09-25 07:38 UTC

This package is auto-updated.

Last update: 2024-09-25 07:38:55 UTC


README

Build Status Coverage Status Latest Unstable Version composer.lock Total Downloads Monthly Downloads

EmeRails

EmeRails 是一个 PHP 网络应用框架,其灵感来源于 Ruby on Rails。它具有 MVC 架构,ORM 层模仿 ActiveRecord,并且很好地将表现层与业务逻辑分离,优先考虑惯例而非配置。

它支持模板、页面缓存、动作过滤以及许多开箱即用的实用功能,可以节省编码时间和服务器负载。类似于 Rails,EmeRails 有一个 generate.php 脚本,可以快速帮助您启动并运行,快速创建控制器、模型和视图。

EmeRails 通过 mysql(已弃用)和 mysqli 扩展默认支持 MySQL,并在 PHP 5.67.1nightly 上持续测试。持续测试链接

生成器

EmeRails 包含一个生成器脚本,可以无代码创建控制器、视图和模型

scripts/generate.php
Usage: generate.php controller controller_name [action1 [action2 ...]]
       generate.php model model_name [field1 [type1 [field2 [type2 ...]]]]

要生成控制器及其视图,请按以下方式运行生成器脚本

scripts/generate.php controller foo bar baz

这将创建一个控制器类 FooController,默认具有 FooController::index 动作,以及两个动作 FooController::barFooController::baz。它还将生成视图 indexbarbaz

要生成一个具有字段和类型的模型,请按以下方式运行生成器脚本

scripts/generate.php model foo bar int baz float

这将创建一个模型类 Foo,包含两个字段,barint 类型,bazfloat 类型。它还将创建 DB 中的后端表。

贡献

感谢您对 EmeRails 的兴趣!请随时提交问题或 PR。有关详细说明,请参阅 贡献指南

开发

EmeRails 是一个 PHP 网络应用。如果您不确定该做什么,请按照以下步骤操作

安装本地 MySQL 服务器

对于开发,最好使用 本地 MySQL 服务器。我在 Mac OS X 上使用 MAMP,但您也可以在 Docker 容器 中运行 MySQL 服务器。

安装依赖项

make install

创建测试数据库

此命令将创建一个测试 MySQL 数据库

make create_test_db

请注意,脚本假定 PATH 中有 mysql 命令。它还假定数据库用户是 root,并将提示输入密码。如果您想使用其他用户,您必须编辑 Makefile

运行测试

运行测试(有限覆盖率)

php_env=test make test

Docker

如果您熟悉 DockerDocker Compose,您可能想利用包含的 Dockerfile 将您的应用程序打包成 Docker 镜像。

make docker-build

此目标构建应用程序为 emerails-app 镜像;要轻松在容器中运行该镜像

make docker-run

此目标运行一个 mysql 数据库容器,启动一个应用程序容器,将它们连接起来,并将应用程序容器的端口 80 转发到本地端口 8080。您可以在浏览器中打开 https://:8080 来访问应用程序。

要停止应用程序和 mysql 容器,请运行目标

make docker-stop

完成Docker镜像清理时,还有一个方便的目标

make docker-clean

包含的docker-compose.yml配置也允许您在本地启动应用程序

docker-compose up --build -d

文档

要生成文档,您需要Doxygen。您可以从源代码构建它,下载二进制文件,或通过homebrew安装它

brew install doxygen

一旦您安装了Doxygen,您就可以运行docs目标

make docs

许可证

MIT

版权所有(c)2008,2017 Claudio Procida