Astrology PHP 框架
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()
{
/* 是否自动运行 */
/* 是否渲染页面 */
/* 输出格式 */
}
}
Astrology PHP 框架的更多相关文章
- 避免重复造轮子的UI自动化测试框架开发
一懒起来就好久没更新文章了,其实懒也还是因为忙,今年上半年的加班赶上了去年一年的加班,加班不息啊,好了吐槽完就写写一直打算继续的自动化开发 目前各种UI测试框架层出不穷,但是万变不离其宗,驱动PC浏览 ...
- ABP入门系列(1)——学习Abp框架之实操演练
作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...
- 旺财速啃H5框架之Bootstrap(五)
在上一篇<<旺财速啃H5框架之Bootstrap(四)>>做了基本的框架,<<旺财速啃H5框架之Bootstrap(二)>>篇里也大体认识了bootst ...
- Angular企业级开发(5)-项目框架搭建
1.AngularJS Seed项目目录结构 AngularJS官方网站提供了一个angular-phonecat项目,另外一个就是Angular-Seed项目.所以大多数团队会基于Angular-S ...
- Scrapy框架爬虫初探——中关村在线手机参数数据爬取
关于Scrapy如何安装部署的文章已经相当多了,但是网上实战的例子还不是很多,近来正好在学习该爬虫框架,就简单写了个Spider Demo来实践.作为硬件数码控,我选择了经常光顾的中关村在线的手机页面 ...
- 制作类似ThinkPHP框架中的PATHINFO模式功能
一.PATHINFO功能简述 搞PHP的都知道ThinkPHP是一个免费开源的轻量级PHP框架,虽说轻量但它的功能却很强大.这也是我接触学习的第一个框架.TP框架中的URL默认模式即是PathInfo ...
- 旺财速啃H5框架之Bootstrap(四)
上一篇<<旺财速啃H5框架之Bootstrap(三)>>已经把导航做了,接下来搭建内容框架.... 对于不规整的网页,要做成自适应就有点玩大了.... 例如下面这种版式的页面. ...
- 一起学 Java(三) 集合框架、数据结构、泛型
一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个 ...
- Hibernatel框架关联映射
Hibernatel框架关联映射 Hibernate程序执行流程: 1.集合映射 需求:网络购物时,用户购买商品,填写地址 每个用户会有不确定的地址数目,或者只有一个或者有很多.这个时候不能把每条地址 ...
随机推荐
- react 关闭eslint 配置
在 package.json 中修改为一下 "eslintConfig": { "extends": "react-app", " ...
- Numpy一文全了解
1,Numpy是一个python包,它是一个由多维数组对象和处理数组的例程集合组成的库. 2. Numpy的操作:(1)数组的算数和逻辑运算 :(2)傅里叶变换和用于图形操作 (3)与线性代数有 ...
- webpack多入口优化
最近接手的项目是公司之前搭的多页面应用脚手架,然后到现在入口页面大大小小超过半百了,然后每次更新完配置之后,重启页面就贼拉卡,实在太影响开发效率了,于是开始优化呗. 最开始发现如果你想要让加载速度变快 ...
- spring boot整合websocket
转载自:https://www.cnblogs.com/GoodHelper/p/7078381.html 一.WebSocket简单介绍 随着互联网的发展,传统的HTTP协议已经很难满足Web应用日 ...
- API Test WebApiTestClient工具安装及使用
一.guget安装: 1.解决方案右键-管理解决方案的nuget程序包打开如下图: 搜索WebApiTestClient,然后选择查询出的项目,右边点击安装即可: 2.安装会有如下图提示: 确定即 ...
- dskinlite自适应dpi
调试了好久,mfc CDialog终于搞定,付费支持,qq: 80101277 效果图:
- 网址导航18B
[名站] 百度 网易 腾讯 新华 中新 凤凰 [新闻] 联合早报 南方周末 澎湃新闻 [系统] 宋永志 蒲公英 技术员 秋叶系统 装机网 系统之家 [软件] 星愿浏览器 暴风激活 贱人工具箱 微P ...
- Kudu基本操作及概念
Kudu: 针对 Apache Hadoop 平台而开发的列式存储管理器. 使用场景: 适用于那些既有随机访问,也有批量数据扫描的复合场景. 高计算量的场景. 使用了高性能的存 ...
- eclipse Maven Dependencies 黑色背景说明
记录工作点点滴滴,大到系统设计,源码分析,小到IDE设置. 这里要说的是eclipse中Maven Dependencies 为什么有些jar用黑色背景,如下图所示: 网上很多人说jar包在本地仓库不 ...
- 博客七----tensorflow-gpu安装满满填坑
具体内容见我的开源中国教程:https://my.oschina.net/u/3770644/blog/3043073 因为编写习惯原因,我的大多数详细教程在开源中国中.有兴趣的大家打开连接就好 强调 ...