当前位置: 首页 > 软件库 > Web应用开发 > Web框架 >

Simple PHP

授权协议 Apache
开发语言 PHP
所属分类 Web应用开发、 Web框架
软件类型 开源软件
地区 国产
投 递 者 辛才俊
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

    Simple 一个结构清晰层次分明微型的php框架。

    Simple 不是一个试图满足所有需求的怪物

    Simple 试图解放你的思想,不被框架的条条框框所限制。

    Simple 试图成为一个能让你自由发挥的框架。

    Simple 试图规范流程,而不是提供一个非常具体的实现。

需求

  1.             >php5.3.0。

  2.             熟悉php,熟悉面向对象编程。

  3.             爱翻php手册。

  4.             推荐IDE,phpstorm

核心思想

1. 控制请求到响应的整个生命周期,并且对此按照合适的粒度进行分层,而不是着眼于提供庞大的功能。

    这部分的分层在项目的Cycle包下面,主要包含有

  •             Application

  •             Router

  •             Request

  •             Caller

  •             Response

    执行的流程是从上到下,具体的流程为:

  1.             所有的请求都会进入Application的run方法,整个请求到相应返回的生命周期都是在这个方法中进行的。

  2.             在Application的run方法中会生成Router对象。

  3.             根据Router对象,会生成Request对象,所有的请求参数都会包装在Request里面。

  4.             把生成的Request对象传递给Caller对象,负责调用具体的接口(这里既可以是Controller,也可以实现为RPC)。

  5.             然后接口生成Response对象。

  6.             最后根据项目的需要,把Response对象转换为你所需要的格式,返回给客户端。

2. 提供方便的数据操作模式(注:不提供复杂的ORM)。

    数据相关的操作都封装在了Model包下面,主要分为这个几个层次:

  1.             Vo,实体类。

  2.             Dao,数据访问。

  3.             Driver,数据连接驱动。

  4.             Pool,连接池。

Vo

    实体类,全称为Value Object。顾名思义,就是对数据库字段的一个映射。底层提供了两种类型的Vo,NoSQLVo和MySQLVo 项目中的实体类定义字段的时候必须定义为 proteced $_变量名称的格式,并且最好实现各个字段的getter和setter方法,这部分代码完全可以由IDE生成(注:推荐phpstorm)。

Dao

    数据访问层,所有的数据访问都应该通过该层来访问,底层提供了两种类型的Dao,并且提供了一些针对单条信息的基础的操作方法。 如果底层的Dao层的功能不能满足你的要求,你自己自行扩展继承。

Driver

    数据库驱动层,目前关系型数据库只支持PDO的方式,NoSQL类型的数据库只支持Memached。

Pool

    连接池(针对一个请求到相应生命周期而言),根据配置里面的标识获取数据库的连接,同一个标识多次获取,只会连接一次数据库。

3. 日志功能

    系统底层采用的是开源的monolog,系统包装了一个简单通用的方法来写入日志,封装在Log包下面,有一个叫LogUtil的工具类,有一个方法叫write。

4. debug功能

    在php中,常用的debug方式有:

  1.             打印输出,例如 echo,print_r,var_dump之类的打印函数。

  2.             文件记录,把调试信息写入到一个文本里面。

    这两种方式的缺点也,调试起来麻烦,调试完成后容易忘记去掉,由于采用的是系统函数,无法在非debug状态下关掉。 比较好的方式是,系统自定义一个调试方法,可以在非debug的情况下关掉。在Debug类下面封装了一个trace方法。专门用来调试,输出会默认输出到,Google Chrome的console面板下面,前提是你得安装一个叫做Chrome Logger的插件。

5. Config,配置

只支持php数组形式的配置。 为什么不支持yaml和json或者其他格式的配置? 无论你采用什么格式的配置文件,最终都必须解析转换为php的数组或者对象,而且由于每次常规的操作都会用到配置文件,都会去解析一次,这个太没必要了。 项目的配置相关都放在了Config目录下面,系统提供了一个ConfigManager::get的方法去获取对应的配置信息。 系统默认会现在项目配置中去找,若找到就直接返回,找不到,就到系统默认的配置中去查找,找到返回,如果找不到会抛出一个异常。

6. Bootstrap,系统引导

    引导整个应用,提供服务。 主要有两个步骤

  1.             初始化环境,使用init方法,这里面注册了对警告的捕捉未被捕捉异常的处理自动加载文件

  2.             start,启动服务,注册Application对象。

7.Application包

    由于框架本身只是提供一个规范和标准,没有提供具体的实现。所以Application包下面提供了两种不同类型应用的实现。

  1.             Game,适合于SNS游戏类型的应用。所有面向服务不需要输出html的应用都适用。

  2.             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

  • PHP

    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框架是很有必要的, 即使不是很完善,但是自己动