vanilla/garden

此包已被废弃,不再维护。未建议替代包。

花园框架。

v0.1.0 2015-02-02 15:33 UTC

This package is auto-updated.

Last update: 2020-02-15 03:59:01 UTC


README

Build Status Coverage

Garden是一个用于构建可插拔Web应用程序和API的微型框架。这个框架目前还在开发中,应该被视为预alpha质量代码。

你好,陌生人!

花园框架是在过去四年中我们为Vanilla Forums工作的基础上诞生的。我们建立了一个从简单开始,但已发展成为具有数百个插件和主题的巨大可扩展、可定制的解决方案的论坛。在这些年中,我们学会了在框架中我们需要什么,不需要什么,花园就是结果。

Garden深受当前网络中微型框架工作的启发,尤其是Slim Framework。我们称Garden为微型框架,因为它起源于微型框架,但包含了足够的功能,使其不再被认为是微型。

花园概览

RESTful路由

你可以通过简单地将路由到闭包或控制器来创建简单的API,以创建更高级的应用程序。

插件和事件

使用Garden的插件和事件框架使你的应用程序可扩展。如果你熟悉Vanilla,可以将插件视为插件和应用程序的联合。

Garden的Event对象允许你绑定到事件并触发你自己的事件。事件允许进行几乎无限定制的操作,无需重新实现大量代码。你可以只绑定到你需要的少数几个事件,并捕捉你需要的功能。

面向对象,但不过度

我们热爱对象,Garden有一个坚实的面向对象基础。然而,我们相信并非所有事物都必须是对象,类结构实际上只能深入到一定程度。对我们来说,使用Garden开发是一种美学体验,过多的对象配置会与此目标背道而驰。

由Composer支持

Composer是PHP世界中的神奇包管理器。Garden作为一个Composer包实现,使其易于使用并与其他数千个Composer包结合。

单元测试

Garden使用PHPUnitTravis CI进行测试。我们想确保Garden是高质量的软件,在添加新功能时不会出现故障。我们的目标是实现所有报告的bug作为单元测试,以确保它们可以被修复并永远不会再次发生。

开源

Garden 是一款在 MIT 许可证下免费、开源的软件。

安装

Garden 需要 PHP 5.4 或更高版本。

Garden 遵循 PSR-4 规范,并可以使用 composer 安装。只需在您的 composer.json 文件中添加 vanilla/garden 即可。

"require": {
    "vanilla/garden": "*"
}

一个基本的 Garden 应用程序

大多数 Garden 应用程序会使用 .htaccess 文件来实现美观的 URL,并定义一个 index.php 文件,如下所示

// Put your index.php in the Garden namespace or import the various classes you need.
namespace Garden;

// Define the root path of the application.
define('PATH_ROOT', __DIR__);

// Require composer's autoloader.
require_once __DIR__.'/vendor/autoload.php';

// Instantiate the application.
$app = new Application();

// Load the default config from conf/config.json.php.
Config::load();

// Enable addon functionality.
Addons::bootstrap(); // enables config('addons')

// Fire the bootstrap event so that overridable function files can be included.
Event::fire('bootstrap');

// Register routes to functions.
$app->route('/hello', function () use ($app) {
    echo "Hello World!";
});

// Register a route to controllers.
$app->route('/api/', '%sApiController');

// Run the application.
$app->run();

更多内容即将到来

此“read-me”文档仍在完善中。