搜索
首页开发工具composer教你利用composer实现路由加载

教你利用composer实现路由加载

Jul 10, 2020 pm 02:10 PM
composer路由

下面由composer教程栏目给大家介绍利用composer实现路由加载,希望对需要的朋友有所帮助!

教你利用composer实现路由加载

本教程示例代码见 https://github.com/johnlui/My-First-Framework-based-on-Composer

久负盛名的 CodeIgniter 框架是很多人的 PHP 开发入门框架,同样也是我开始学习如何从头构建一个网站的框架。在 CI 中我学到了很多,其中对 MVC 的深入理解和对框架本质的理解对我的影响最大。从使用框架是为了提高开发效率的角度来看,框架的本质就是路由。

推荐 https://github.com/NoahBuscher/Macaw,对应的 Composer 包为 noahbuscher/macaw 。

下面开始安装它,更改 composer.json:

 "require": {
    "noahbuscher/macaw": "dev-master"
  },

运行 composer install,成功之后得到以下目录

这里写图片描述

至此,Macaw 包安装成功!

下面,就是见证奇迹的时刻!我们将赋予 MFFC 生命力,让它真正地跑起来!

1:新建 App/config 文件夹,在里面新建 routs.php 文件,内容如下:
这里写图片描述

2:在入口文件index.php中 加载routs.php 文件
这里写图片描述

Macaw 的文档位于 https://github.com/NoahBuscher/Macaw,请按照你的 HTTP 服务软件类型自行设置伪静态,其实跟绝大多数框架一样:“将所有非静态文件全部指向 index.php”。

配置成功后访问域名:
这里写图片描述

如果页面乱码,请调整编码为 UTF-8。如果你成功看到以上页面,那么恭喜你,路由配置成功!

Macaw 只有一个文件,去除空行总共也就一百行多一点,通过代码我们能直接看明白它是怎么工作的。下面我简略分析一下:

  1. Composer 的自动加载在每次 URL 驱动 MFFC/public/index.php 之后会在内存中维护一个全量命名空间类名到文件名的数组,这样当我们在代码中使用某个类的时候,将自动载入该类所在的文件。
  2. 我们在路由文件中载入了 Macaw 类:“use NoahBuscher\Macaw\Macaw;”,接着调用了两次静态方法 ::get(),这个方法是不存在的,将由 MFFC/vendor/codingbean/macaw/Macaw.php 中的 __callstatic() 接管。

  3. 这个函数接受两个参数,method" role="presentation" style="position: relative;">methodparams,前者是具体的 function 名称,在这里就是 get,后者是这次调用传递的参数,即 Macaw::get(‘fuck’,function(){…}) 中的两个参数。第一个参数是我们想要监听的 URL 值,第二个参数是一个 PHP 闭包,作为回调,代表 URL 匹配成功后我们想要做的事情。

  4. __callstatic() 做的事情也很简单,分别将目标URL(即 /fuck)、HTTP方法(即 GET)和回调代码压入 routes" role="presentation" style="position: relative;">routesmethods 和 $callbacks 三个 Macaw 类的静态成员变量(数组)中。

  5. 路由文件最后一行的 Macaw::dispatch(); 方法才是真正处理当前 URL 的地方。能直接匹配到的会直接调用回调,不能直接匹配到的将利用正则进行匹配。

以上是教你利用composer实现路由加载的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:csdn。如有侵权,请联系admin@php.cn删除
作曲家:简化PHP项目开发作曲家:简化PHP项目开发Apr 15, 2025 am 12:08 AM

Composer简化PHP项目开发的步骤包括:1)添加依赖,如在composer.json中添加"laravel/framework":"^8.0";2)自动加载,通过定义命名空间和类路径生成autoload.php文件;3)优化性能,使用composerdump-autoload-o和composerinstall--no-dev--optimize-autoloader命令。通过这些步骤,开发者可以提高效率并避免常见错误。

作曲家凭证:是什么使某人成为作曲家?作曲家凭证:是什么使某人成为作曲家?Apr 14, 2025 am 12:13 AM

成为作曲家的关键要素包括:1.掌握音乐理论,2.具备创造力和原创性,3.拥有技术技能,4.能够进行情感表达和故事讲述,5.理解文化和历史背景,6.积累实践和经验,这些要素共同构成了作曲家的身份和能力。

成为作曲家的途径:实用指南成为作曲家的途径:实用指南Apr 13, 2025 am 12:11 AM

成为作曲家的步骤包括:1.掌握音乐基本元素,如音符、节奏、和声、旋律;2.选择合适的技术工具,如AbletonLive;3.理解作曲的过程,包括灵感获取、构思、编写、修改和完善;4.从简单旋律创作开始,逐步尝试复杂技巧如和声进行;5.通过调试技巧解决常见问题,如音符选择和节奏安排;6.应用性能优化和最佳实践,如使用模板、版本控制和协作。

作曲家:构建强大PHP应用程序的关键作曲家:构建强大PHP应用程序的关键Apr 12, 2025 am 12:05 AM

Composer是构建健壮PHP应用的关键工具,因为它简化了依赖管理,提升了开发效率和代码质量。1)Composer通过composer.json文件定义项目依赖,并自动下载和管理这些依赖。2)它生成composer.lock文件确保依赖版本一致,并通过vendor/autoload.php实现自动加载。3)使用示例包括基本用法如添加日志库,以及高级用法如版本约束和环境变量管理。4)常见错误调试技巧包括处理依赖冲突和网络问题。5)性能优化建议包括使用composer.lock文件和优化自动加载。

作曲家专业知识:是什么使某人熟练作曲家专业知识:是什么使某人熟练Apr 11, 2025 pm 12:41 PM

要在使用Composer时变得熟练,需要掌握以下技能:1.熟练使用composer.json和composer.lock文件,2.理解Composer的工作原理,3.掌握Composer的命令行工具,4.了解基本和高级用法,5.熟悉常见错误与调试技巧,6.优化使用和遵循最佳实践。

作曲家在做什么?作曲家在做什么?Apr 08, 2025 am 12:19 AM

Composer是PHP的依赖管理工具,用于声明、下载和管理项目依赖。1)通过composer.json文件声明依赖,2)使用composerinstall命令安装依赖,3)解析依赖树并从Packagist下载,4)生成autoload.php文件简化自动加载,5)优化使用包括使用composerupdate--prefer-dist和调整autoload配置。

什么是应用作曲家?什么是应用作曲家?Apr 07, 2025 am 12:07 AM

AppComposer是一种用于构建和管理应用程序的工具。1)它通过拖拽和配置预定义组件简化应用开发,提高效率。2)开发者可以定义组件、组合界面、定义业务逻辑,并最终渲染应用。3)支持基本和高级用法,如任务管理和条件渲染,帮助构建灵活的应用。

作曲家是用什么?作曲家是用什么?Apr 06, 2025 am 12:02 AM

Composer是PHP的依赖管理工具。使用Composer的核心步骤包括:1)在composer.json中声明依赖,如"stripe/stripe-php":"^7.0";2)运行composerinstall下载并配置依赖;3)通过composer.lock和autoload.php管理版本和自动加载。Composer简化了依赖管理,提升了项目效率和可维护性。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。