nagyatka / kodiapp
PHP应用程序框架
v0.11.25
2017-07-31 12:51 UTC
Requires
- php: ^5.6 || ^7.0
- nagyatka/pandabase: v0.10.*
- nikic/fast-route: v1.0.1
- pimple/pimple: ^3.0
- swiftmailer/swiftmailer: v5.4.3
- symfony/translation: v3.1.3
- twig/twig: ~1.0
Requires (Dev)
- phpunit/phpunit: 5.4.8
- dev-master
- v0.11.25
- v0.11.24
- v0.11.23
- v0.11.22
- v0.11.21
- v0.11.20
- v0.11.19
- v0.11.18
- v0.11.17
- v0.11.16
- v0.11.15
- v0.11.14
- v0.11.13
- v0.11.12
- v0.11.11
- v0.11.10
- v0.11.9
- v0.11.8
- v0.11.7
- v0.11.6
- v0.11.5
- v0.11.4
- v0.11.3
- v0.11.2
- v0.11.1
- v0.11.0
- v0.10.0
- v0.9.12
- v0.9.11
- v0.9.10
- v0.9.9
- v0.9.8
- v0.9.7
- v0.9.6
- v0.9.5
- v0.9.4
- v0.9.3
- v0.9.2
- v0.9.1
- v0.9.0
This package is auto-updated.
Last update: 2024-09-13 21:03:23 UTC
README
PHP应用程序框架
安装
$ composer require nagyatka/kodiapp
文档 v1.0
匈牙利语文档
启动应用
/* * index.php */ define('PATH_BASE', dirname(__FILE__).'/..' ); // Composer autoloader require '../vendor/autoload.php'; use KodiApp\Application; use MyApp\MyAppConfiguration; Application::getInstance()->run(new MyAppConfiguration());
可以通过调用Application::getInstance()
类的方法来访问一个应用。由于应用使用了Singleton模式,因此在应用运行期间,可以通过这个方法在任何地方调用。
可以使用run方法启动应用,该方法需要一个实现ApplicationConfiguration
接口的类作为参数。在这里,只需要实现initializeApplication
方法,该方法将在应用运行开始时被调用。在这里需要注册数据库连接、路由、安全设置等。
这种方法提供了高度的自由度,因为我们可以将配置实现在配置类内部加载配置文件,也可以通过构造函数来解决这个问题。
class MyAppConfiguration implements ApplicationConfiguration { public function __construct() { // ... } public function initializeApplication(Application $application) { // ... } }
组件
组件注册
需要在实现ApplicationConfiguration
接口的类的initializeApplication
方法中初始化不同的组件。
路由
需要按照以下结构定义一个数组来定义路由
//Struktúra: [route_name] => [ "method" => [HTTP method], "url" => [url], "handler" => "[controller_class]::[controller_class_function]", ], ... //Példa: "home" => [ "method" => "GET", "url" => "/", "handler" => "HomeController::handleIndex", ],
路由初始化
class MyAppConfiguration implements ApplicationConfiguration { private $myroutes = [ "home" => [ "method" => "GET", "url" => "/", "handler" => "HomeController::handleIndex", ], ]; public function initializeApplication(Application $application) { $router = new SimpleRouter(); $router->setRoutes($this->myroutes); $application->setRouter($router); } }
与路由关联的HomeController
class HomeController { public function handleIndex() { return "Hello world!"; } }
在url中设置参数
class MyAppConfiguration implements ApplicationConfiguration { private $myroutes = [ "home" => [ "method" => "GET", "url" => "/user/{user_id:[0-9]+}", "handler" => "UserController::getUser", ], ]; public function initializeApplication(Application $application) { $router = new SimpleRouter(); $router->setRoutes($this->myroutes); $application->setRouter($router); } } class UserController { public function getUser($params) { return "User_id: ".$params["user_id"]; } }
可以在给定的url中设置任意参数,这些参数将以关联数组的形式传递给方法。在url参数中,可以使用冒号(:)来分隔,并可以指定一个必须匹配的正则表达式,以便调用在handler中指定的方法!有关url设置的详细信息,请参阅这里。