aura/system

由 Aura 库包构建的全栈框架系统。

维护者

详细信息

github.com/auraphp/system

源代码

问题

安装次数: 1,224

依赖: 0

建议者: 0

安全性: 0

星星: 63

关注者: 11

分支: 11

开放问题: 0

类型:项目

1.0.1 2015-03-24 21:07 UTC

This package is auto-updated.

Last update: 2024-09-11 03:43:56 UTC


README

Build Status

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 并看到 "这是一个示例主页"。