lekoala / silverstripe-micro-framework
SilverStripe的微框架
dev-master
2021-11-10 13:42 UTC
Requires
- silverstripe/framework: ^4.6
Requires (Dev)
- sminnee/phpunit: ^5.7
- squizlabs/php_codesniffer: ^3.0
This package is auto-updated.
Last update: 2024-09-10 19:52:10 UTC
README
简介
此模块使得在不使用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