首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

怎样选择适合自己php框架

使用框架的一些好处如下: PHP框架使开发过程更快,例如,你不必为从数据库中查询数据去写复杂的查询语句。...Symfony也使用模型和控制器来开发web应用,对于新的开发者这看起来有点老套。但是确实好用。对于模块化框架来说Symfony是一个很好的例子。...Laravel不像另外2个框架一样提供激进的模块化支持。 如果你正在寻找一个模块化的框架,就去选择Symfony,其他的话,Laravel和Yii都是很好的选择。 安装 这三个框架提供了许多安装程序。...Laravel的性能是一个颇有争议的问题。它是最慢的,但这有关系吗?你会找到在线资源去加速它的性能,包括GitHub上的指南让你的laravel应用变得更快。...所有的框架都有很好的文档注释并都与一个庞大的社区支持 都支持ORM(Object Relationship Mapping 对象关系映射)。

4.7K20

为什么 Laravel 这么优秀?

我会按照我理解的最佳实践的做法,一步步实现一个完整的 CURD;但不会一来就把 Laravel 的各个优秀组件抛出来,而是遇到什么组件后再尝试理解它为什么要这样设计、比起其他框架的优势在哪里。...所有数据库的变更都通过 migration 的方式来完成也是 Laravel 推荐的最佳实践之一。...另一个强大之处在于可以通过 Eloquent 抽象「模型与模型」之间的关系;举个例子,在下面的定义中我们描述了一个 Course 可以有多个 Student、一个 Teacher;以及一个 Student...Laravel Forge、Laravel Vapor 还有 Laravel Envoyer;如果你作为一个 Laravel 新人你知道用什么搭建本地开发环境吗?...又用什么部署你的 Laravel 应用吗?说实话我用了 Laravel 这么久我也不知道。

26710
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    大部分人的仓库模式都用错了吗?—— laravel

    如图:可能你会疑问,检索数据并映射到实体模型,这不是 Eloquent 做的吗?...上述代码还有一个错误是:在仓库中返回 Eloquent 模型,这会使你的业务逻辑层跟 Eloquent 耦合。...在 Laravel 中文官方文档中,推荐的最佳实践有说,“绝不 使用 Repository,因为我们不是在写 JAVA 代码,太多封装就成了「过度设计(Over Designed)」,极大降低了编码愉悦感...其实仔细想想,这是个伪命题。如果你是正确的使用了仓库模式,controllers 其实不会变得更瘦。因为 Repository 只不过是一个特定的持久化适配器,它不应该实现任何业务逻辑和应用程序逻辑。...Laravel 应用中一般会包含以下4层:UIControlleServiceDatabase/Eloquent一个简单的 service 可能长这样:class UserService{ protected

    2.1K30

    自动化测试:六个值得参考的 Laravel 开源项目

    免责声明: 我只是查看了完整的基于 Laravel 5.3+ 的 Laravel 项目(不包括依赖包)  1....我还注意到 Laravel.io 已经升级到了 Laravel 5.4, 但是测试套件仍然使用的是5.3的风格, 使用 BrowserKitTestCase implementation。...同时这段逻辑是所有的测试 —— 一些抽象的 "魔术" 正在执行所有的工作。   我不是说这是坏事 —— 十分确定他在内在的东西里工作的很好。他只是不容易先学习和遵循。...PHPMap 有一个测试组件,使人联想到 Laracasts 或 测试驱动 Laravel 课程 讲述的标准。这是 Feature/FavoritesTest.php 的例子。  ...迁移到较新版本的 Laravel 可能很痛苦 —— 例如,5.3 版本的测试看上去和 5.4 版本不一样。所以你需要提前考虑更新。

    2K30

    【Laravel系列4.4】模型Eloquent ORM的使用(二)

    集合操作 其实这个集合操作并不是模型特有的,还记得在 查询构造器 中,我们查询列表的时候,总会在最后加一个 toArray() 吗?...而另外一个 map() 函数就不用多说了,之前我们说过,Laravel 的 PDO 在默认查询构造器的情况下,走的是 PDO::FETCH_OBJ ,获得的集合结果中的每个数据都是一个 stdClass...这是一个连续递进的关系,之前在 查询构造器 的文章中,我们已经看到了它的底层就是调用的 原生查询 操作。那么这回,我们再来看一下 Model 中的方法,在底层是不是调用的是 查询构造器 。...在所有模型都要继承的 laravel/framework/src/Illuminate/Database/Eloquent/Model.php 类中,我们很快就能发现一个 query() 静态方法。...剩下的还需要我们细讲吗?我觉得到这里真的已经非常清晰了。 然后我们来看一下这个 Model 基类中的其它方法,貌似没有发现 get() 、find() 之类的方法呀?这是怎么回事。

    2.8K20

    【Laravel系列4.3】模型Eloquent ORM的使用(一)

    这是为啥?赶紧查看错误信息,竟然是这个 laravel.m_tests 表不存在。小伙伴们不要惊讶,在这里出错是正常的,为什么呢?...对于 Laravel 中标准的 Eloquent 模型类来说,每个表都应该有两个字段,一个是 updated_at ,另一个是 created_at ,分别是两个时间戳字段,用于记录数据的创建时间和修改时间...最后在查询中,我们也看到了类似于 查询构造器 的链式调用形式,通过模型的静态 where() 方法返回的实例对象,一步步地构造整个查询。...接下来的事情似乎就很好了办了吧,直接去 getAttribue() 方法中继续查看。...接下来,如果这个 key 是 Model 基类中的某个方法时,直接返回一个空的内容。注意,这里又用到了我们之前学习过的一个技巧,大家能看出来吗?

    8.9K20

    Laravel 模型操作中一次奇妙踩坑经历

    最近被 Laravel 模型中的一些小问题折腾的死去活来的,明明看着很清晰很明了的代码,却偏偏不能实现功能,现在带大家来切身经历一下这次奇妙的踩坑经历,代码看似很多,实则不多,大家别急着跑,哈哈。...这是为啥,我有点懵了,难道说 $userTask->tasks 操作是关联查询操作了?($userTask 是一个 User 对象集合,$userTask->tasks 会不会再次查询数据了?...还记得我们刚才测试打印时候的 toArray 吗,就是他把对象集合转变成了一个数组,我们来看一下: ?...大家知道在控制器中直接 return 的时候,是会直接转化为 Json 数据格式的,模型中也相对应的有这么一个方法: ? ? 一步步走下来发现,最终还是调用了 toArray 。...特别鸣谢: zIym 同学[1] (咱俩一起跨的坑,哈哈) 结束语 其实吧最初我也没有想这么多,想了很多其它的解决办法,但是都是治根不治本,到头来发现自己对 Laravel 模型的工作原理还是不熟悉,只存在简单的应用上面

    1.6K30

    两个非常棒的 Laravel 权限管理包推荐

    这是旧包被遗弃的原因之一:自带的功能取代了它们。 但是,在这个领域仍然有这样一些包可以帮助我们实现 Laravel 核心功能不容易实现的权限和角色需求。...有两个包做得很好,作者也还在积极维护: Spatie 的 Laravel-permission Joseph Silber 的 Bouncer 特别提及:santigarcor/laratrust,它是一个已经停止维护的...数据库结构 这是这两个包完全不同的地方。 Spatie 的包有以下表: ?...: Bouncer::allow('admin')->to('ban-users'); 简单这样写,Bouncer 会在后台为你创建一个 Role 模型和一个 Ability 模型。...最终结论 在这里没办法告诉你这两个包哪个更好,因为这两个包都真的很好,这已经上升到了一个偏好的问题。 他们都有自己的一些功能的优势,甚至更多的细节上的设计。

    4.2K30

    3分钟短文:Laravel模型读数据的那个“障眼法”

    引言 通过前几篇文章视图和路由的介绍,我们通过模型对象操作数据库表。 laravel模型的精巧设计使得我们操作数据层逻辑更加得心应手。 [图片] 本文我们来说说模型在读写数据中所使用的技巧。...为了测试方便,我们不需要写额外的代码,直接使用 tinker 命令行交互工具,在命令行输入: tinker 进入交互界面,然后我们使用模型查询一条 events 表的数据,并访问其属性: namespace...访问器 其实上一节所说的日期时间的格式化,正是laravel模型访问器的功能。专门用于在模型层面,修改模型属性的展示方式。定义一个访问器非常简单,就是在模型内添加规范格式的方法函数。...save方法会返回一个 Events 模型对象,直接访问其方法: $e->name // 输出 "Let's Learn a Little Laravel Together" 正是我们定义的访问器的修改策略...这是laravel提供的语法糖,很好使! 写在最后 本文通过日期时间字段的格式化方法,引申出laravel模型的访问器功能,并通过实例介绍了具体的用法。

    94111

    如何选择PHP框架?

    在选择一个框架时思考一下以下的问题: 这个框架的特色和功能是什么?它们是不是我所需要的? 这个框架的学习过程要多长? 它的稳定性如何? 这个框架是由核心团队开发和维护的吗?...这个框架可以提供长期支持吗? 这个框架有强大的社区支持吗?...Symfony也利用模型和控制器来开发Web应用程序,在许多开发人员眼中,它可能看起来是迟钝的,但它是有作用的。另外,Symfony是模块化框构的一个很好例子。...项目是开源的,其源代码可以在GitHub上找到,让任何人都能轻松做出贡献: Symfony Laravel Yii 该框架有很好的文档记录,并由一个大社区支持。 它们都支持ORM(对象关系映射)。...框架都是很好的选择,为开发人员提供了一个全栈开发环境。

    7.8K90

    3分钟短文:Laravel路由加模型等于?

    引言 上一章我们用3分钟时间光速入门了laravel控制的用法,本章不准备说控制器了,说一说另外俩模块,就是路由Route和模型Model,这俩直接加起来,会有什么奇思妙想的发生呢?...上面的路由也是很多地方都在用的通用的做法,可是程序员总是懒惰的,能少写一行就少写一行。laravel为我们准备了更多。 隐式绑定 首先来看一下默认的隐式路由模型绑定。 什么意思呢?...就是路由内默认使用某个变量传入参数,这个键名与执行方法变量名相同,那么系统就会根据传入的参数,在执行方法内使用依赖注入方式实例化一个模型,而实例化的方法,恰恰就是传入的参数的查询结果集。...撞名了,这个时候系统就会想了,这是要用隐式的绑定模式啊。...写在最后 本文讲了一个再实际工程中用的甚至不是太多的一个功能——路由模型绑定,却能为大家打开思路提供很多帮助。 诸位还记得之前章节我们介绍的使用 slug 方式查询数据集吗?那正是典型的路由模型绑定。

    80700

    3分钟短文:Laravel路由加模型等于?

    引言 上一章我们用3分钟时间光速入门了laravel控制的用法,本章不准备说控制器了,说一说另外俩模块,就是路由Route和模型Model,这俩直接加起来,会有什么奇思妙想的发生呢?...上面的路由也是很多地方都在用的通用的做法,可是程序员总是懒惰的,能少写一行就少写一行。laravel为我们准备了更多。 隐式绑定 首先来看一下默认的隐式路由模型绑定。 什么意思呢?...就是路由内默认使用某个变量传入参数,这个键名与执行方法变量名相同,那么系统就会根据传入的参数,在执行方法内使用依赖注入方式实例化一个模型,而实例化的方法,恰恰就是传入的参数的查询结果集。... 撞名了,这个时候系统就会想了,这是要用隐式的绑定模式啊。...写在最后 本文讲了一个再实际工程中用的甚至不是太多的一个功能——路由模型绑定,却能为大家打开思路提供很多帮助。 诸位还记得之前章节我们介绍的使用 slug 方式查询数据集吗?那正是典型的路由模型绑定。

    50220

    laravel初次学习总结及一些细节

    最近学习了laravel,先简单谈谈学习的感受吧 刚开始一周多一点的时间先把laravel的开发文档看了一遍,,感觉刚开始接触时的感觉laravel的目录与thinkphp又不一样,它们的渲染模板的方式也不一样...,模型的功能又比thinkphp的强大了许多,但是最厉害的地方的是它支持composer安装许多的模块,简单方便。...在laravel的文档中,学到了门面(接口)和契约(接口),还知道了中间件,csrf保护和blade视图模板及laravel验证(过滤进入应用的 HTTP 请求提供了一套便利的机制) 在学习完laravel5.3...如果使用laravel5.3的模型的自动维护时间,,数据库的时间存储为时间戳timestamp或datetime类型,,如果存成int类型,则会出错 4.在blade模板中如果遇到解析不正确的话可以使用...在form表单提交checkbox时,,要将其name上加上 [],要不如果提交多个的话,,只能收到最后一个

    4.6K20

    orm 系列 之 Eloquent演化历程2

    tag v1.1.1版本的eloquent, git co v1.1.1 此版本是v4.0.0之前的一个版本,从这以后laravel会以组件的形式组织各个功能,让我们分析下v1.1.1的版本,目前具有哪些功能...本文最后讲下Eloquent中新增的对象之间的关系:多态关系,以下内容摘自[ Laravel 5.3 文档 ] Eloquent ORM —— 关联关系 表结构 多态关联允许一个模型在单个关联下属于多个不同模型...5.3 文档 ] Eloquent ORM —— 关联关系,接下去让我们看下这是怎么实现的?...*版本的时候,laravel/framework还采用的psr-0规范,所有其目录层级还是src/Illuminate/Database,在这个版本中有个新的目录Capsule,其下面是一个Manager...参考 [ Laravel 5.3 文档 ] Eloquent ORM —— 关联关系

    2.4K30

    laravel 强大的调试工具 telescope

    Laravel telescope是Laravel应用程序的调试工具。它提供了观察应用程序的全面视图,包括当前路由、HTTP 请求、数据库查询、日志和事件。...它是一个功能强大的工具,可以帮助用户更快地查找和修复错误。图片以下是laravel telescope 的一些特点:异常跟踪:Telescope 跟踪应用程序中发生的所有异常。...查询分析:Telescope 分析应用程序执行的所有数据库查询。这包括查询文本、执行时间和受影响的行数。日志查看:Telescope 允许您查看应用程序的日志文件。...以下是使用Laravel telescope的优点:它使调试Laravel应用程序变得容易。它可以帮助您更快地查找和修复错误。它可以帮助您了解应用程序的工作原理。它是一种轻巧且易于使用的工具。...如果您正在寻找一种调试Laravel应用程序的方法,那么我建议您使用Laravel Telescope。这是一个很好的工具,可以帮助您更快地查找和修复错误。

    62350

    3分钟短文:Laravel slug,让你的url地址更“好记”

    有一个第三方类库专门用于url的友好化。...如果你有印象的话,应该会记得laravel模型的find等方法,是基于primary key进行索引,以便加快查询速度。拿到模型的ID,查询该条目数据,然后返回模型实例。...这是基于ID这个integer类型的查询。 而slug查询,是基于字符串的,如果要使用slug此功能,需要改写默认的列名。...,SluggableScopeHelpers 是一个全局作用域文件,这是我们上一章所讲内容,不再赘述。...写在最后 本文介绍了在模型文件内,引入slug的功能,并通过修改模型的查询方式,让模型的默认查询方式修改为通过字符串进行查询,从而可以在路由文件内构造更友好的查询url。

    3.5K11

    最受推荐的 9本全栈开发书籍,助web前端开发学习

    2、《Full-Stack Vue.js 2 and Laravel 5》 Vue是一个JavaScript框架,Laravel是一个PHP框架,用于开发快速和安全的web站点。...这本书结合实际示例,使用Vue与Laravel,帮助你建立现代全栈的web应用程序,在本书中,你将搭建一个名为Vuebnb的订房网站。...这是我的web前端交流3000人裙,有任何问题可以随时来咨询我。...本书首先对Vue.js及其核心概念进行了全面的介绍,并对每个概念进行了解释,然后再在项目中实践;然后,你将使用Laravel构建一个web服务,并将前端集成到一个完整的堆栈应用程序中。...一个好的Web前端工程师他能够很好理解产品经理对用户体验的要求,也能够很好地理解后台工程师对数据逻辑。或者程序逻辑进行分离的要求,并将这些要求转化成前台的开发工作。

    4K10

    3分钟短文 | Laravel复杂SQL超多WHERE子句,本地作用域你没用过

    首先,你完全不必把每个条件都使用where链式调用,可以把查询条件放在一个 array 数组内,整体传入where子句。 ? 这样把拼装where子句的工作,提前到查询数组的操作上,就更加灵活了。...操作的另外一个查询条件数组: $orThose = ['yet_another_field' => 'yet_another_value', ...]; 然后把这些筛选条件重复利用: $results...就拿这个 model 的查询说起,你可以 "查询作用域”这么个时髦的功能,有效分散和重用查询条件。 拿“全局作用域”来说,它可以给模型的查询都添加上约束。...Laravel 的软删除功能就是利用此特性从数据库中获取 “未删除”的模型。 你可以编写你自己的全局作用域,很简单、方便的为每个模型查询都加上约束条件。看官方给出的示例: ?...连SQL拼接都这么方便,这是其他框架里不曾有过的愉悦。 Happy coding :-)

    2.8K10

    Laravel 开发 RESTful API 的一些心得

    最近用 Laravel 写了一段时间的 API,总结一下自己的心得吧。 Start API开发我们可以看到,有些网站用token验证身份,有些用OAuth2.0,当时我也纠结,然后看到一个不错的说法。...://github.com/barryvdh/laravel-cors) 一个简单的接口示例: ?...在有不确定是否输出关联数据时,这是一个很有用的功能!!! 响应输出 当时在 laravel-china 看到的这个帖子,然后觉得这个方式不错,所以自己也这样子,使用基类的方法统一响应输出。...ValidationException这个是表单异常,捕获之后,表单错误消息可以很好的格式化。...ModelNotFoundException这个是模型找不到的异常,捕获之后,可以直接在控制器直接这样。

    3.9K90
    领券