climbPHP github:https://github.com/sskyy/climbPHP 这是一个基于codeIgniter的扩展框架,但是主体部分可以非常容易的移植。你想试一下的,只要配置一下数据库连接就行了。 它想表达的,更多的是一种代码架构方式。并非几个简单地类库。 以下是重点。 更好
climbPHP
github:https://github.com/sskyy/climbPHP
这是一个基于codeIgniter的扩展框架,但是主体部分可以非常容易的移植。你想试一下的,只要配置一下数据库连接就行了。
它想表达的,更多的是一种代码架构方式。并非几个简单地类库。
以下是重点。
更好的模块化
我所指的模块是module,而不是model。model是业务模型,我们能用它进行一定的业务逻辑操作。而模块应该是系统的组成部分,应该实现三个主要特性: 1.能根据系统事件动态地做出响应。也就是在系统级别应用 “观察者模式” 。 2.能够使用系统统一的规则进行通信。climbPHP使用的是全局的广播。 3.能够根据一定的规则构建出优雅的层次结构。
climbPHP的解决方案:
1.对于 “1” “2” 两点来说。
climbPHP使用的是建立一个全局的事件对象。所有模块都可以通过这个事件对象进行 “抛出” 和 “监听” 。基础模块只需要在可能出现扩展的地方抛出合适的 “事件” 即可,除了自身逻辑以外不需要再知道其他模块的处理细节。这里注意,执行事件对象的“抛出”操作是可以得到返回值的,这个返回值代表着外界的响应。这使得在有必要的情况下外界可以在一定程度上干预模块内的操作。另外,全局事件也是一个模块。
2.要构建出优雅的模块层次结构,需要实现 3 个要点:
[1] “被依赖”的模块有能力知道“依赖”它的模块何时被加载。并有机会操作“依赖”的它的模块;
[2] 要能实现依赖关系的自动加载;
[3] 模块能动态的按需获取其他模块,同时要求这种获取方法是不能污染全局变量的。
climbPHP实现了一个模块加载器(也是一个模块),能根据模块申明的依赖关系进行自动加载。加载的过程中也实现底层模块获取上层模块的能力。屏蔽了CI的全局对象,所有资源统一交由模块管理器来管理。
广播系统
“广播系统”实际上就是通过“事件对象”实现的。任何模块既可以使用全局的事件对象,也可以在模块内实现自己的“事件对象”。
实体系统
实体系统 的核心是“实体”和“集合”两个类,除了基本的增删改查外,主要的特点有:
1.实体实现了嵌套,的属性也可以是另一个实体。“集合”实现了“排序”、“筛选”等功能。
2.实体和集合都通过组合的方式获取 “与数据库的连接” ,它只要求用户的数据库连接类实现了约定的接口。用户可以使用任何数据库,甚至混合使用。
3.对于mysql用户。climbPHP通过一个小型ORM和一个表数据入口类来帮助使用实体类,并且可动态拆卸。
问题反馈
有任何问题或者你想加入climbPHP的开发都请email给我,谢谢。skyking_H@hotmail.com。
使用教程
文件中有一个用户登陆的示例,使用了大部分基础特性。可自由查看。 详细的教程我会马上更新。
尴尬。之前忘提交代码到github了。现在已提交。

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

WebStorm Mac version
Useful JavaScript development tools

Atom editor mac version download
The most popular open source editor

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment
