Simple 是一个结构清晰、层次分明、微型的php框架。
Simple 不是一个试图满足所有需求的怪物。
Simple 试图解放你的思想,不被框架的条条框框所限制。
Simple 试图成为一个能让你自由发挥的框架。
Simple 试图规范流程,而不是提供一个非常具体的实现。
>php5.3.0。
熟悉php,熟悉面向对象编程。
爱翻php手册。
推荐IDE,phpstorm
这部分的分层在项目的Cycle包下面,主要包含有
Application
Router
Request
Caller
Response
执行的流程是从上到下,具体的流程为:
所有的请求都会进入Application的run方法,整个请求到相应返回的生命周期都是在这个方法中进行的。
在Application的run方法中会生成Router对象。
根据Router对象,会生成Request对象,所有的请求参数都会包装在Request里面。
把生成的Request对象传递给Caller对象,负责调用具体的接口(这里既可以是Controller,也可以实现为RPC)。
然后接口生成Response对象。
最后根据项目的需要,把Response对象转换为你所需要的格式,返回给客户端。
数据相关的操作都封装在了Model包下面,主要分为这个几个层次:
Vo,实体类。
Dao,数据访问。
Driver,数据连接驱动。
Pool,连接池。
实体类,全称为Value Object。顾名思义,就是对数据库字段的一个映射。底层提供了两种类型的Vo,NoSQLVo和MySQLVo 项目中的实体类定义字段的时候必须定义为 proteced $_变量名称的格式,并且最好实现各个字段的getter和setter方法,这部分代码完全可以由IDE生成(注:推荐phpstorm)。
数据访问层,所有的数据访问都应该通过该层来访问,底层提供了两种类型的Dao,并且提供了一些针对单条信息的基础的操作方法。 如果底层的Dao层的功能不能满足你的要求,你自己自行扩展继承。
数据库驱动层,目前关系型数据库只支持PDO的方式,NoSQL类型的数据库只支持Memached。
连接池(针对一个请求到相应生命周期而言),根据配置里面的标识获取数据库的连接,同一个标识多次获取,只会连接一次数据库。
系统底层采用的是开源的monolog,系统包装了一个简单通用的方法来写入日志,封装在Log包下面,有一个叫LogUtil的工具类,有一个方法叫write。
在php中,常用的debug方式有:
打印输出,例如 echo,print_r,var_dump之类的打印函数。
文件记录,把调试信息写入到一个文本里面。
这两种方式的缺点也,调试起来麻烦,调试完成后容易忘记去掉,由于采用的是系统函数,无法在非debug状态下关掉。 比较好的方式是,系统自定义一个调试方法,可以在非debug的情况下关掉。在Debug类下面封装了一个trace方法。专门用来调试,输出会默认输出到,Google Chrome的console面板下面,前提是你得安装一个叫做Chrome Logger的插件。
只支持php数组形式的配置。 为什么不支持yaml和json或者其他格式的配置? 无论你采用什么格式的配置文件,最终都必须解析转换为php的数组或者对象,而且由于每次常规的操作都会用到配置文件,都会去解析一次,这个太没必要了。 项目的配置相关都放在了Config目录下面,系统提供了一个ConfigManager::get的方法去获取对应的配置信息。 系统默认会现在项目配置中去找,若找到就直接返回,找不到,就到系统默认的配置中去查找,找到返回,如果找不到会抛出一个异常。
引导整个应用,提供服务。 主要有两个步骤
初始化环境,使用init方法,这里面注册了对警告的捕捉,未被捕捉异常的处理,自动加载文件。
start,启动服务,注册Application对象。
由于框架本身只是提供一个规范和标准,没有提供具体的实现。所以Application包下面提供了两种不同类型应用的实现。
Game,适合于SNS游戏类型的应用。所有面向服务不需要输出html的应用都适用。
Web,Web网站类型应用。系统采用的模板引擎是twig
The Simple PHP Framework is a pragmatic approach to building websites with PHP 7.2+. It's geared towards web design shops and freelance programmers looking for a common foundation to quickly bring web
例1 <?php function welcome($name){ echo ' hello ' . $name; } echo welcome('zxl'); ?> 例2 <?php function add($num1,$num2){ echo $num1 + $num2; } echo add(1,2); ?> 例3 <?php function subtract($num1,
1 在你的网站目录下创建一个文件夹,名字任意,假设叫smarty_demo: 2 然后再在这个MySmarty目录下创建2个文件夹,templates和configs。 创建完成之后如下: (你的网站目录)/smarty_demo/templates (这个目录用来存放模版) (你的网站目录)/smarty_demo/configs (这个目录用来存放一些配置信息) 3、在smar
1.PHP中连接数据库 <?php $db_name="myshop"; $db_user="root"; $db_pwd="123456"; $db_loc="localhost"; $conn = mysql_connect($db_loc, $db_user, $db_pwd) or die("Could not connect:".mysql_error());//获得数据库连接 mysq
http_build_query http_build_query http_build_query http_build_query http_build_query http_build_query http_build_query
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。 http://blog.csdn.net/topmvp - topmvp Find real-world solutions to PHP programming problems Simplify and shorten the PHP application development
一个简单的PHP开发框架 最初起源于一款web游戏,后来用来做了款O2O应用 主要是围绕一个字 懒.. 主要特点是项目继承(类, 配置) simple/core 是核心 applications/base 是项目基础,继承自核心 applications/extend 是项目扩展,继承自base,可以继续扩展 extend2, 3, admin.. 项目下的类默认继承自base,也可单独指定(项目
实例:http://www.ikeepstudying.com/tools/proxy/ index.php <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" language="javascript"> // I want to use js
一个php文件实现单点入口自动加载类模型视图控制器 去掉注释只有20行, /** *惊世php框架控制器页, *20120219,版本2.0, *实现功能:单点入口,自动加载类,控制器, *类库在class文件夹下,命名方式xxx.class.php,配合mysql数据库连接类、缓存静态文件生成类等其他类库,就是完整的框架 *模型在module文件夹下,命名方式xxx.mod.php,每个mod文
<?php /* 一、什么是smarty? smarty是一个使用PHP写出来的模板PHP模板引擎,它提供了逻辑与外在内容的分离,简单的讲, 目的就是要使用PHP程序员同美工分离,使用的程序员改变程序的逻辑内容不会影响到美工的页面设计,美工重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。 二、smarty优点: 1. 速度:采用smarty编写的程序可以获得最大速度的提高,
https://adworld.xctf.org.cn/task/answer?type=web&number=3&grade=0&id=5072 题解: 掌握php弱类型比较 php中有两种比较符号: ==: 先将字符串类型转化成相同,再比较 ===: 先将字符串类型转化成相同,再比较 字符串和数字比较使用==时,字符串会先转换为数字类型再比较 php var_dump('a' == 0);//
我们所处的这个信息爆炸的年代,宝贵的不是知识,而是时间,如何用最少的时间,最大限度的获取所需要的知识是非常重要的。这个教程所要体现的特点就是极简,简不是简单的简单,而是抓住最基础、最关键点,以最简练的文字、图片和代码让读者花费最少的时间掌握php开发。
软件简介 SimplePHP 自己动手写PHP MVC框架 PHP的框架众多,对于哪个框架最好,哪个框架最烂,是否应该用框架,对于这些争论在论坛里面都有人争论,这里不做评价, 个人觉得根据自己需求,选中最佳最适合自己MVC框架,并在开发中能够体现出敏捷开发的效果就OK了,作为一个PHPer要提高自己的对PHP和MVC的框架的认识,所以自己写一个MVC框架是很有必要的, 即使不是很完善,但是自己动手
PHP语言相对来说比较容易上手。现在的PHP开发已经达到饱和,但是高级程序员缺需求很大。
因为前几天写了篇文章,用php-excel-reader类导入excel内容,顺便说些excel导出问题,我用的是simple excel,一个很简单的导出xls类,特好用! simple excel源码如下: <?php /** * Simple excel generating from PHP5 * * @package Utilities * @license http:/
PHP实现文件上传很简单,代码如下: //**************up.php <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>Tansf</title> </head> <body> <form name="form1" enctype="multipart/f
imajeffs at hotmail dot com 16-Nov-2009 01:11 Technically the web server always runs first. It doesn't understand PHP itself, but must be configured to detect whether the location requested by the cl
simplePhpTmp 是面向数据编程的 PHP 模板引擎,包括页面模板、数据缓存、mysql数据库封装的轻量级框架 simplePhpTmp 简单的php模板,比smarty快十倍,方便,简洁,实现变量替换,条件、循环语句,支持嵌套和基本运算 1.支持{_key}变量的替换,替换为数组的value 2.支持{_IF key}.. {ELSE}...{ENDIF}条件语句 = < > #(不等于
SimplePHP ===== 自己动手写PHP MVC框架 PHP的框架众多,对于哪个框架最好,哪个框架最烂,是否应该用框架,对于这些争论在论坛里面都有人争论,这里不做评价, 个人觉得根据自己需求,选中最佳最适合自己MVC框架,并在开发中能够体现出敏捷开发的效果就OK了,作为一个PHPer要提高自己的对PHP和MVC的框架的认识,所以自己写一个MVC框架是很有必要的, 即使不是很完善,但是自己动