| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> PHP知识库 -> 【Laravel系列1】进入 Laravel 的世界 -> 正文阅读 |
|
[PHP知识库]【Laravel系列1】进入 Laravel 的世界 |
进入 Laravel 的世界欢迎来到 Laravel 系列文章的学习。从这篇文章开始,我们开始进入到 PHP 框架相关的学习中。在这其中,我们主要学习的就是 Laravel 框架,那么为什么是 Laravel 呢?明明 TP 、 Yii 也是很多人在使用的呀。 为什么是 Laravel一说到 PHP 的框架,三巨头是绕不开的,也就是 ThinkPHP 、Yii 以及我们马上要学习的主角 Laravel 。当然,还有 CodeIgniter 、 CakePHP 以及大名鼎鼎的 Zend Framework 等等非常多的优秀框架。但是,从当前的市场环境来看,Laravel 框架是绝对的主流。TP 框架在 5.x 版本的时候,基本就像是一个 Laravel 的翻版,而 6.x 系列还没有详细的看过,不过总体的思想其实都是和 Laravel 很接近的。 就像语言的互相借鉴融合一样,框架之间也是这样的。我们不能说 TP 或者 Yii 不好,而且还应该多多支持 TP 这样的优秀国产开源框架。但是他们确实在慢慢地向 Laravel 中的很多思想靠拢。所以,我们一次到位,直接来学习 Laravel 框架,同时也能加深我们对 TP 以及其它框架的理解。 顺便说说我使用过的其它框架吧,在 TP 的 3.x 时期,使用过 TP 做过不少小网站,方便,简洁,确实很好用,国人能做出这么优秀的框架其实在当时来看也是很难得的。即使到现在来说,TP 也是除了 Laravel 之外在国内影响力最大的框架。Yii 在之前还是在一家公司用过2、3年,当时是 1.6 版本的,之后换了一家公司也继续使用过 2.0 版本的用了很长一段时间。不得不提的是,Yii 框架虽然说是由不少老外维护的,但其核心创始人也是我们中国人。加上鸟哥的 Yaf 之类的框架,我们国人在 PHP 领域中的贡献还真是不少的。除了这两个之外,目前使用的项目中,还用到了 Swoole 和 Hyperf ,这两个一个是扩展框架,一个是基于 Swoole 的 MVC 框架,同样也都是我们中国人开发的。 不过,Swoole 相关的框架就不在我们这个系列的学习讨论中了,以后再开专门的系列文章来进行学习。 话说回来,除了上面比较出名的之外,我还在实际的项目中接触及使用过 CodeIgniter 以及 CakePHP ,不过都是很早之前了。如果从路线图来说的话,那么我接触框架的顺序是这样的:Cake -> CodeIgniter -> TP -> Yii -> Laravel -> Hyperf 。目前在工作使用的,正是 Laravel 和 Hyperf 。 注:Hyperf 中很多东西也有 Laravel 的影子,甚至很多内容是可以无缝迁移的。 Laravel 优雅吗?“优雅”这个词,一直就是 Laravel 对外宣传的标语。确实优雅,最开始学习它的源码时,我就深刻的感觉到这人是不是 Java 转过来的,各种 Java 中的写代码的方式放到了 PHP 中,各种设计模式在这个框架中进行了应用。不过,就像前面说过的一样,各种语言的融合,软件工程的发展,让这些东西都不是某个语言的特定功能,而是所有语言都拥有的。 我们知道,PHP 这种动态语言的最大特点就是上手快,但是,精深难。网上的段子是 PHP 的水货一大堆,水平无下限。而 Java 这种静态语言以及很早确立的各类规范让 Java 程序员的下限控制得很好。也就是说,不管你写得多烂,起码是有下限的。而在 PHP 中,一旦工程乱了起来,很多代码就会变得没有下限了,这个有时候还真不是你的水平能决定代码质量了。即使是水平非常高的 PHP 程序员,也很容易写出各种迷惑代码出来。 而 Laravel ,正是为了解决这个问题,将你的代码规范起来。或者说,在底层上,代码是很规范的,至于上层代码怎么样,就看你能不能有自己的规范了。当然,我们也不能忽略 PSR 系列规范的作用。当然,现代的框架也基本都是遵循 PHP 的 PSR 规范的。 然而,优雅的代价就是 速度 。这也是 Laravel 学习中绕不开的一个话题。在 Laravel 中,底层还有一个 Symfony2 框架。最底层的基础功能其实在 Laravel 中又是调用了这个底层的 Symfony2 框架,也可以说,Laravel 是对 Symfony2 的又一次优雅的封装。这种情况下,速度能快起来也是不太可能了。网上有各种框架之间速度的对比,大家可以自行查阅。 因此,在实际的项目开发中,我们经常使用 Laravel 来进行后台功能的开发,而如果是前端需要应对大量的请求并发时,一般不太会采用 Laravel 框架。当然,并不是说不能用,在一系列的优化以及开启 OpenCache 的情况下,Laravel 也是很能顶的,毕竟大部分项目和大部分公司,能到 500 并发量的都是少数。 学习 Laravel学习 Laravel 前,建议先看看我之前的 【PHP设计模式】?相关的系列视频和文章。这个是重点中的重点。(公众号下方菜单中有视频和文章的链接按扭) 其次,本机测试环境调试好 xdebug ,网上也有很多文章是讲怎么配 PHPStrom 或者 VSCode 进行断点调试的,这个东西也很重要,对于任何框架的学习来说,这玩意都非常有用。 最后,跟着撸,这个是编程学习的通用法宝,当然,撸的同时一些基础知识也最好理解掌握下来,不行就背下来,面试的时候不会亏。 总结好了,第一篇文章轻松些,同时这些也是我对 Laravel 的一个简单的理解。有兴趣的小伙伴可以再去官方文档更深入地了解一下 Laravel 的整个发展历史,也可以更加深入的查阅一下 Laravel 和其它框架之间的一些区别与联系。我们学习的主要目的还是深入的学习 Laravel 框架的使用以及对部分源码的剖析。 当然,水平有限,之后文章中的纰漏也在所难免,也欢迎大家随时监督反馈。 |
|
PHP知识库 最新文章 |
Laravel 下实现 Google 2fa 验证 |
UUCTF WP |
DASCTF10月 web |
XAMPP任意命令执行提升权限漏洞(CVE-2020- |
[GYCTF2020]Easyphp |
iwebsec靶场 代码执行关卡通关笔记 |
多个线程同步执行,多个线程依次执行,多个 |
php 没事记录下常用方法 (TP5.1) |
php之jwt |
2021-09-18 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 14:51:28- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |