aura / system
由 Aura 库包构建的全栈框架系统。
Requires
- aura/autoload: ~1.0
- aura/cli: ~1.0
- aura/di: ~1.0
- aura/filter: ~1.0
- aura/framework: ~1.0
- aura/framework-demo: ~1.0
- aura/http: ~1.0
- aura/input: ~1.0
- aura/installer-system: ~1.0
- aura/intl: ~1.0
- aura/marshal: ~1.0
- aura/router: ~1.0
- aura/session: ~1.0
- aura/signal: ~1.0
- aura/sql: ~1.0
- aura/uri: ~1.0
- aura/view: ~1.0
- aura/web: ~1.0
This package is auto-updated.
Last update: 2024-09-11 03:43:56 UTC
README
Aura 系统提供围绕 Aura 库包构建的全栈 Aura 框架。
入门指南
安装
通过 Composer 安装到您选择的 {$PROJECT_PATH}
composer create-project aura/system {$PROJECT_PATH}
这将创建系统骨架并安装所有必要的包。
安装 Aura 系统后,使用 Aura.Framework 命令启动内置 PHP 服务器
cd {$PROJECT_PATH}
php package/Aura.Framework/cli/server
然后您可以在浏览器中打开 http://0.0.0.0:8000 并查看 "Hello World!" 示例输出。
按 Ctrl-C
停止内置 PHP 服务器。
此外,您还可以运行命令行测试
cd {$PROJECT_PATH}
php package/Aura.Framework_Demo/cli/hello
您应该会看到 "Hello World!" 作为输出。
运行测试
对于测试,您需要安装 PHPUnit 3.7 或更高版本。
要运行整个系统的集成测试,请切换到 tests
目录并运行 phpunit
cd {$PROJECT_PATH}/tests
phpunit
要运行包的单元测试,请切换到该包的 tests
目录并运行 phpunit
cd {$PROJECT_PATH}/package/Aura.Autoload/tests
phpunit
Web 服务器
要在 Apache 或其他 Web 服务器上运行 Aura,请向 Web 服务器配置中添加一个虚拟主机,然后将它的文档根指向 {$PROJECT_PATH}/web
。
如果服务器上安装了 mod_rewrite
或等效模块,您将能够在不使用 URL 中的 index.php
的情况下进行浏览。
删除示例包
当您确信安装正常工作时,编辑 composer.json
文件以删除 aura/framework-demo
包的要求,然后运行 composer update
。
系统组织
系统目录结构非常直观
{$PROJECT_PATH}/
config/ # mode-specific config files
_mode # the config mode to use
_packages # load these packages in order
default.php # default config
dev.php # shared development server config
local.php # local development server config
prod.php # production config
stage.php # staging config
test.php # testing config
include/ # application include-path directory
package/ # aura-package libraries
tests/ # system tests
tmp/ # temporary files
vendor/ # composer vendors
web/ # web server document root
.htaccess # mod_rewrite rules
cache/ # public cached files
favicon.ico # favicon to reduce error_log lines
index.php # bootstrap script
编写页面控制器
让我们创建一个包和一个页面控制器,并将其连接起来以供浏览。我们将以项目特定的方式这样做,省略创建独立包的复杂性。
警告:如果您尚未删除
Framework_Demo
包,请在继续之前删除它。否则,您的路由将无法正常工作。
创建控制器
切换到 include/
目录并为示例包创建一个位置以及为我们第一个网页创建空间 ...
cd {$PROJECT_PATH}/include
mkdir -p Example/Package/Web/Home
cd Example/Package/Web/Home
... 然后创建一个名为 HomePage.php
的文件。添加以下代码作为裸骨索引操作
<?php namespace Example\Package\Web\Home; use Aura\Framework\Web\Controller\AbstractPage; class HomePage extends AbstractPage { public function actionIndex() { $this->view = 'index'; } } ?>
创建视图
接下来,在名为 views/index.php
的文件中创建索引操作的视图,并向其中添加以下代码
<?php echo "This is an example home page."; ?>
此时,您的 include/
目录应该看起来像这样
include/
Example
Package/
Web/
Home/
HomePage.php
views/
index.php
注意:从技术上讲,您不需要如此深的目录结构。但是,这样的结构可以轻松添加新页面以及其他支持库,而无需在以后更改项目组织。
配置系统
现在我们需要将页面控制器连接到自动加载器和路由系统。切换到系统配置目录
$ cd {$PROJECT_PATH}/config
编辑 default.php
文件并在文件末尾添加以下代码
<?php // attach the path for a route named 'home' to the controller and action $di->params['Aura\Router\Map']['attach'][''] = [ // all routes with the '' path prefix (i.e., no prefix) 'routes' => [ // a route named 'home' 'home' => [ 'path' => '/', 'values' => [ 'controller' => 'home', 'action' => 'index', ], ], ] ]; // map the 'home' controller value to the controller class $di->params['Aura\Framework\Web\Controller\Factory']['map']['home'] = 'Example\Package\Web\Home\HomePage'; ?>
试试看
现在您应该能够浏览到 /
URL 并看到 "这是一个示例主页"。