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.集合映射 需求:网络购物时,用户购买商品,填写地址 每个用户会有不确定的地址数目,或者只有一个或者有很多.这个时候不能把每条地址 ...
随机推荐
- JavaScript heap out of memory解决方法
在 npm 打包的时候,node环境控制台报错了,JavaScript heap out of memory 解决方法如下: 不管你是angular还是其他的,找到 \node_modules\.bi ...
- java中常规使用的mysql语句
1.登录型校验 limit 1,例如: SELECT `password`FROM workerWHERE phone = 18611406603LIMIT 1 结果无值,不需验证;有值,校验 2.存 ...
- html入门第二天。
二·1.图片与多媒体:-------------- img标签(重中之重): 网页中的图片展示就是用的img标签实现,img元素相网页中嵌入一幅图形,行内标签,单标签. 基础语句:<img sr ...
- php 安装最新的redis连接扩展
用于与redis连接的Php扩展[RC表示公测,我们用的是不带RC的稳定版本]下载包地址:http://pecl.php.net/package/redis 最新稳定版本:4.3.0 下载包:# wg ...
- python测试开发django-1.开始hello world!
前言 当你想走上测试开发之路,用python开发出一个web页面的时候,需要找一个支持python语言的web框架.django框架有丰富的文档和学习资料,也是非常成熟的web开发框架,想学pytho ...
- 对webdriver-driver句柄的理解
先贴代码: from selenium import webdriver //首先导入selenium(webdriver)相关模块 driver = webdriver.Firefox() ...
- php-fpm重启
Ubuntu 18.04服务器 修改php init 文件后(/etc/php/7.2/fpm/php.ini)需要重启php-fpm,方法是: kill -USR2 `cat /run/php/ph ...
- 2018-2019-2 20165315《网络对抗技术》Exp2 后门原理与实践
2018-2019-2 20165315<网络对抗技术>Exp2 后门原理与实践 一.实验任务 使用netcat获取主机操作Shell,cron启动 使用socat获取主机操作Shell, ...
- oracle数据入库
oracle数据入库 注意:先要处理文件中的分隔符 将数据分列 创建为标准的sql语句 1.在oracle数据库中创建要入库的表如果有该表则不用创建(注:创建字段的数据类型要符合实际逻辑 va ...
- MySQL增删改查常用语句命令
增删改查语句增删改查的语句命令为 增:insert删:delete改:update查:SELECT或者show 库操作创建数据库:create database shujukuba;创建带字符集的数据 ...