当前位置: 首页 > 科技观察

PHP自定义路由总结

时间:2023-03-14 00:54:28 科技观察

简介我有一个用PHP写的网站,类似于个人测试站点。自己独立设计,在过程中犯了一切可能的设计和编程错误,同时也收获了很多,这也促使我去学习PHP和MySQL。每当我学习一项新技术或网络实践时,我认为我的网站会从中受益。可以想象,它的可读性不是很好。测试站点在代码可读性和可维护性方面往往很糟糕,尤其是当您仅仅因为某些必要的功能而学习编程语言时,这就是我一直学习PHP的方式。自从接触了ASP.NETMVC之后,我就一直在思考如何在这个网站上实践这种MVC模式。我喜欢整个概念的一切,尤其是路由。但是我并不想为此重构整个站点的现有框架,害怕现有代码中的大部分会变得像外来物,超出我的控制和理解范围。网站已经有一个基于WordPress搭建的博客,通过修改模板使其看起来像一个完整的站点,就像在巨墙上涂鸦一样,乱七八糟。然后呢?前段时间学习了一些RESTAPI,用于日常工作需要。有没有完美的方法来学习这个?我知道一个网站可以从中受益。在网上看了一些PHP环境下实现RESTfulAPI的文章,了解到.htaccess文件。现在我知道如何在PHP中构建路由,我可能能够在测试站点上实现我自己设计的小型、简单的MVC模型。假设在PHP中构建自定义路由的关键是添加一个.htaccess文件,请看下面的具体实现:我在网站文件夹目录下添加了一个新的“API”文件夹,并在里面新建了一个.htaccess文件,内容是我从CoreyMaynard写的一篇文章中引用的。RewriteEngineOnRewriteCond%{REQUEST_FILENAME}!-fRewriteCond%{REQUEST_FILENAME}!-dRewriteRule^(.*)$index.php?request=$1[QSA,NC,L]长话短说,我们开始使用此配置,所有以“www.yoursite.com/api/”开头或指向不存在的文件或路径的请求都将被重定向到index.php文件。$1变量值表示请求的URL地址,“request”变量名也很容易理解,可以通过$_REQUEST['request']命令轻松获取。此外,index.php文件和.htaccess文件处于相同的访问级别。可能出现的问题?事实上,您可能没有启用指定的模块。在WampServer环境下,我需要开启相应的模块来支持本地运行。一种方法是点击托盘图标进入“Apache”目录,在“Apachemodules”列表中选择rewrite_module,然后重启所有服务。另一种方法是编辑httpd.conf文件并取消注释以下配置#LoadModulerewrite_modulemodules/mod_rewrite.so我认为接下来要做的事情之一是为网站做几个自检页面,这样我就可以确定了该网站的负责人没有改变任何东西。这听起来可能有点偏执和荒谬,但我还是需要暂时添加“setnameslatin2;”配置查看数据库导入的数据。如果要验证服务器上是否启用了上述配置,可以使用此代码:echoin_array('mod_rewrite',apache_get_modules());下一个?到目前为止,我已经获得了一些重要的知识,这使我能够为我的网站构建一个新的MVC框架。使用新框架比使用现有解决方案要好得多,这主要归功于我在应用MVC模式时获得的广泛知识。由于所有代码都是我自己的努力,因此没有可消耗的组件。继续为我的网站创建RESTAPI。现在我实际上可以从Web界面中提取数据库逻辑。有用的链接如果你想知道我是如何找到解决方案的,这里是我获得知识的网站:http://coreymaynard.com/blog/creating-a-restful-api-with-php/翻译链接:http://www.codeceo.com/article/custom-routing-in-php.html英文原文:CustomroutinginPHP