lekoala/silverstripe-micro-framework

SilverStripe的微框架

安装: 4

依赖者: 0

建议者: 0

安全性: 0

星级: 0

关注者: 4

分支: 0

开放问题: 0

类型:silverstripe-vendormodule

dev-master 2021-11-10 13:42 UTC

This package is auto-updated.

Last update: 2024-09-10 19:52:10 UTC


README

Build Status scrutinizer Code coverage

简介

此模块使得在不使用Cms模块的情况下使用独立的SilverStripe框架变得更容易。

它也可以在没有配置任何数据库的情况下运行一个网站。

警告:这是一个高度实验性的项目 :-)

替换index.php

为了使用此模块,您需要将默认的index.php替换为以下内容

// Force specific constants
define('BASE_PATH', dirname(__DIR__));
define('PUBLIC_DIR', 'public');
define('PUBLIC_PATH', BASE_PATH . DIRECTORY_SEPARATOR . PUBLIC_DIR);
define('RESOURCES_DIR', 'resources');

require dirname(__DIR__) . '/vendor/autoload.php';

// Build request and detect flush
$request = \SilverStripe\Control\HTTPRequestBuilder::createFromEnvironment();
// Default application
$kernel = new \LeKoala\MicroFramework\MicroKernel(BASE_PATH);
$app = new \SilverStripe\Control\HTTPApplication($kernel);
$response = $app->handle($request);
$response->output();

新的基本控制器

请使用MicroController作为您应用程序的基本控制器。建议创建一个基本控制器(如PageController),作为您应用程序的基础,而不是每次都扩展MicroController。

class AppController extends MicroController
{
}

设置基本控制器

这对安全屏幕来说非常方便。

SilverStripe\Security\Security:
  page_class: 'App\AppController'

注意:这得益于我们定制的MicroSecurity扩展。

自动路由

如果您在控制器上定义了url_segment,它将自动添加到可用路由中。

class HomeController extends AppController
{
    private static $url_segment = 'home';
    private static $is_home = true;
    ...

您还可以为默认控制器设置一个is_home变量。在这种情况下,默认段/home将重定向到/以避免URL重复。

简单的动作声明

如果您觉得需要两次声明动作(一次作为函数,一次作为方法)很麻烦,请不要担心!

现在您只需确保您的第一个参数接受一个HTTPRequest,它将被视为有效的动作。

页面兼容性

大多数SilverStripe项目都有一个"Page"模板。即使您没有使用Page类,Page.ss也将被视为基类。

无需数据库即可登录为管理员

有一些便利函数允许您在不使用数据库的情况下使用登录屏幕。

兼容性

与4.6及以上版本测试

维护者

LeKoala - thomas@lekoala.be