首页 > 后端开发 > 正文

如何自己编写一个php框架 我想尝试着写个小型PHP框架,现在卡在类自动加载和路由实现上了

2023-10-06 05:39:32 | 我爱编程网

今天我爱编程网小编整理了如何自己编写一个php框架 我想尝试着写个小型PHP框架,现在卡在类自动加载和路由实现上了相关信息,希望在这方面能够更好帮助到大家。

如何自己编写一个php框架 我想尝试着写个小型PHP框架,现在卡在类自动加载和路由实现上了

我想尝试着写个小型PHP框架,现在卡在类自动加载和路由实现上了

类自动加载跟路由是框架最基础的特性

给你点自动加载的思路,首先现在写框架必须用上命名空间,框架内部的类文件夹根据命名空间命名方便自动加载

在入口文件引入自己写的Autoload.php 通过spl_autoload_register获得要加载的类名

spl_autoload_register(function ($class_name) {
    Autoload::splAutoload($class_name);
});

asseek\route\Router


asseek\Func


asseek\route\Route


app\www\docs\docsController


asseek\Controller


asseek\View


如果你采用命名空间上面函数的$class_name是类似这样的字符串,只要你有当前项目的初始路径再根据这段字符串 require相应的php文件应该不难,自动加载就搞定了。

路由就更简单了就是通过$_SERVER['REDIRECT_URL'] 或$_SERVER['REDIRECT_URI']  获得用户访问的URL,根据自己的框架制定的规则从URL中取得控制器与控制器方法名称,判断controller的类是否存在,存在则实例化,再判断controller的method是否存在,存在则调用方法,方法里面加载视图等就是另外的事情了。

如何自己编写一个php框架 我想尝试着写个小型PHP框架,现在卡在类自动加载和路由实现上了我爱编程网

自己用php开发一个简单的网站,包括后台和前台,开发的步骤,麻烦详细一点,就是一些文字性

1、首先你得搭建PHP运行环境。建议使用PHP开发速成搭建工具包xampp。集成php+phpmyadm+mysql
2、第二步,写需求,如图书管理系统。是否需要会员系统(会员是否分等级如普通、VIP分等级的话,那么有这些等级之间有什么差别)、是否需要文章发布、是否需要图书信息发布、是否需要在线购买书籍、是否要对书籍进行留言评论、是否要有在线试读。
3、针对上面列出的需求,进行数据库的表设计。表的设计要根据以上的需求来。
4、确定怎么对网站进行架构,因为这是一个系统了。是一个系统化的东西,而不是其中某一个小模块功能。你必须要对自己的网站来做一个架构。以使将来有可能网站进行功能模块增加、网站风格改版提供支持,如果只是单纯的PHP写法,将来网站维护改版会很麻烦的,前期一个好的系统架构很重要。这就是为什么很多好的程序员都会喜欢用自己熟悉的某一PHP框架来进行编程了。当然,你也可以自己构思自己的框架,当然这个是需要有对PHP这门语言相当熟练,在通过自己的理解,自己的需要编写适合自己或大众的框架。如zend framework 、thinphp、qeephp、smarty、cakephp等等,要知道一个好的框架不是一天就能写出来的,都是日积月累的。
5、程序实现了你自己的需求,然后就是测试了。测试,可以分的很细了。如数据完整性验证。数据有效性、操作步骤一致性、
6、以上则完成。

如何自己编写一个php框架 我想尝试着写个小型PHP框架,现在卡在类自动加载和路由实现上了

如何写一个PHP框架呢?思路是什么,需要注意些什么

框架也是程序,程序就是解决问题的。
那么首先你要明确的就是你希望解的问题,之前是否有其他框架可以解决这个问题。

举个很简单的例子,google 的服务器分布在全球各地,百度的服务器分布在全国各地,而一般的小公司可能连一台独立的服务器都没有,这三种网站程序肯定不一样。

如果按照这个思路走,框架写不写无所谓,写好一个程序比写一个框架来的更实在!

以上,就是我爱编程网小编给大家带来的如何自己编写一个php框架 我想尝试着写个小型PHP框架,现在卡在类自动加载和路由实现上了全部内容,希望对大家有所帮助!
与“如何自己编写一个php框架 我想尝试着写个小型PHP框架,现在卡在类自动加载和路由实现上了”相关推荐
如何用Python编写一个素数环?
如何用Python编写一个素数环?

如何用Python编写一个素数环?代码:n=int(input("请输入最大数n:"))lists=[[1]]#多个素数环surplusnum=list(range(1,n+1))#剩余的数defsumisprime(x,y):#x与y之和是否是素数isprime=True#是否是素数s=x+y#和foriinrange(2,int(s**0.5)+1):

2023-12-11 17:02:40
python xlwt excel 单元格边框,如何才能有如下的加黑边框
python xlwt excel 单元格边框,如何才能有如下的加黑边框

pythonxlwtexcel单元格边框,如何才能有如下的加黑边框borders = xlwt.Borders()borders.left = 1borders.right = 1borders.top = 1borders.bottom = 1borders.bottom_colour=0x3A    style = xlwt.XFStyle()style.borders = border

2023-12-12 18:09:59
我的世界如何写代码
我的世界如何写代码

我的世界如何写代码以下是按要求改动的代码:编写代码以制作我的世界(Minecraft)模组是一项既有趣又有挑战性的任务。首先,你需要选择一个编程语言来编写Minecraft模组。目前,最常用的语言是Lua,因为Minecraft的开发者也使用它来编写游戏逻辑。如果你熟悉Python,也可以尝试使用Python编写模组,但Lua更为常见。一、获取Minecraft

2023-12-13 17:05:15
如何在python IDLE Shell窗口中编写程序计算圆的周长?
如何在python IDLE Shell窗口中编写程序计算圆的周长?

如何在pythonIDLEShell窗口中编写程序计算圆的周长?可以按照以下步骤在PythonIDLEShell窗口中编写计算圆周长的程序:打开PythonIDLEShell窗口。在窗口中输入以下代码:pythonCopycoderadius=float(input("请输入圆的半径:"))circumference=2*3.14159*radiuspr

2023-12-13 02:25:56
python自动生成插画-python怎么根据数据生成图像
python自动生成插画-python怎么根据数据生成图像

python自动生成插画-python怎么根据数据生成图像如何用python画五一海报要用Python画五一海报,需要用到Python的绘图库,比如matplotlib、Pillow等。以下是一个简单的例子,演示如何使用Python和Pillow库来制作五一海报:fromPILimportImage,ImageDraw,ImageFont#创建一个空白的画布,大小为800x

2023-12-13 15:46:29
python如何在终端退出
python如何在终端退出

3、终端进入和退出python编辑模式1、MAC默认已安装python2.6版本,若想启动该版本,直接输入python即可进入。2、若已安装最新版本,比如3.7,则输入python3,即可进入。3、若想不关闭终端退出,则输入命令"exit()",或者“quit()”,或者按“control+d”。Python入门题039:强制退出程序(5种方法)在一个死循环中,不使用ret

2023-12-11 19:45:48
编程课在哪里报名
编程课在哪里报名

编程课在哪里报名学而思网校app。编程课就是教学生编程的课程,学编程可以锻炼孩子的逻辑思维能力,提升孩子的专注力,需要学习的可以在学而思网校app进行报名,学而思网校在2018年开设了编程课程,包括Scratch图形编程(适合6-10岁孩子)、Python代码编程(适合8-12岁孩子)、C++代码编程(适合10-14岁孩子)等。在报名时需要打开学而思app,在首页搜索需要的基础编程课程,找到

2023-12-14 03:47:41
python时间序列(2)(用python编个十进制转换为六进制的程序!!在线等)
python时间序列(2)(用python编个十进制转换为六进制的程序!!在线等)

python时间序列(2)时期(period)表示的是时间区间,比如数日、数月、数季、数年等。Period类所表示的就是这种数据类型,其构造函数需要用到一个字符串或整数,以及表11-4中的频率:这里,这个Period对象表示的是从2007年1月1日到2007年12月31日之间的整段时间。只需对Period对象加上或减去一个整数即可达到根据其频率进行位移的效果:如果两个Per

2023-12-13 18:17:36