Astrology PHP 框架

it2022-05-08  6

1、Web 服务器配置

PHP 支持

URL Rewrite、PATH_INFO

 

2、环境需求

 PHP 7.2+

扩展:gettext

 

3、目录结构

+ src

   | - autoload.php

   | + Astrology

       | - Start.php

       | - Kernel.php

       | - Controller.php

       | - Database.php

       | - View.php

   | + Anfora

       | - Autoload.php

       | + Autoload

           | - ClassLoader.php

   | + DbTable

   | + Extension

+ app

   | - bootstrap.php

   | - config.php

   | + Index

   | + _App

      | + Controller

          | - _Controller.php

          | - Index.php

      | + Model

      | + View

          | + _Controller

              | - _NotFound.php

              | - index.mobi..php

              | - index.php

          | + _helper

              | - footer.php

          | + _layout

              | - default.mobi..php

              | - default.php

          | + Index

+ web

   | - .htaccess

   | - index.php

 

4、入口文件

web/index.php

require_once __DIR__ . '/../app/bootstrap.php'; new \Astrology\Start();

 

5、引导文件

app/bootstrap.php

define('APP_ROOT', realpath(__DIR__)); define('ANFORA_AUTOLOAD', 0); if (ANFORA_AUTOLOAD) { require APP_ROOT . '/../src/autoload.php'; } else { require APP_ROOT . '/../vendor/autoload.php'; } include_once 'function.php';

 

6、自动加载类

src/autoload.php

require_once __DIR__ . '/Anfora/Autoload.php'; return Anfora_Autoload::getLoader();

 

7、运行

src/Astrology/Start.php

class Start extends Kernel { public function __construct() { $this->loadConfig(); $this->initRoute(); $this->loadController(); } public function loadConfig() { $GLOBALS['CONFIG'] = include_once APP_ROOT . '/config.php'; /* 这里获取配置中的默认语言、客户端语言... */ /* 使用 gettext 扩展、没有的话用 PHP 数组代替 */ @$GLOBALS['LANG'] = include_once $directory . "/$locale/LC_MESSAGES/$text_domain.php"; } }

 

8、主内核

class Kernel { public function __construct() { /* REQUEST_URI 修正 */ /* 开启缓存、php_errormsg 和 php.ini 信息、客户端设备检测 */ } public function initRoute() { /* 默认路由设置 */ /* 从 REQUEST_URI、PATH_INFO、QUERY_STRING(m, c, a 或 r)获取路由信息 */ /* 匹配路由规则 */ /* 模块和控制器异常处理 */ } public function loadController() { /* 添加 Composer 加载规则 */ /* 检测模块和控制器、引入控制器 */ } }

 

9、控制器原型

class Controller { public function __construct() { /* 设置动作方法 */ /* 是否开启 session */ } public function run($method = null) { /* 执行方法 */ } public function _NotFound() { /* 全局未找到动作 */ } public function _redirect($url = '/', $second = null, $prefix = null) { /* 几种重定向 */ } public function __destruct() { /* 是否自动运行 */ /* 是否渲染页面 */ /* 输出格式 */ } }

 

转载于:https://www.cnblogs.com/wudi/p/8506442.html

相关资源:JAVA上百实例源码以及开源项目

最新回复(0)