展开

关键词

Laravel源码学习文章汇总

通过更新文章自己在软件设计、文字表达方面都有所提高,在刚开始决定写Laravel源码分析地文章的时候我地期望是自己和读者通过学习Laravel核心的代码能在软件设计上带来提高,这些提高主要是指两方面:通过学习 Laravel核心的代码来辅助解软件设计行业中经常提及的核心概念,通过学习像IocContainer、面向对象的五大SOLID 是怎么应用到框架设计中去的来指导应该如何去做软件开发设计。 Laravel整个框架设计到的内容有很多,其他的组件我也就不再一一去写文章梳了, 相信你在认真看完这个系列的文章后,假如你在使用其他组件过程中遇到了诡异的问题,或者好奇框架是怎么帮你实现功能的? 你完全有能力去梳其他组件的源码实现来解决你的疑惑。为了大家阅读方便,我把这些源码学习的文章汇总到这里,点击公众号下面的源码学习菜单项即可访问到。 CRUD模型关联事件系统Auth认证系统(基础介绍)Auth认证系统(实现细节)自定义你的Auth认证系统SessionCookieContracts契约加载ENV配置HTTP内核Console内核异常处

30010

Laravel5.2之Demo1——URL生成和存储

引言:本文基于Laravel框架做的一个URL生成和存储demo,主要目的是学习使用Laravel框架。 links,生成的迁移文件中up()方法里引用了Schema::table()方法而不是Schema::create()方法,再添加$table->string(age)->default(0);语句,删除来的 red} div#success{background:#80ff80;border:1px solid #0f0}balde模板页面写完,然后在routes.php路由文件中写个路由:Route:: 在项目根目录执行Artisan命令php artisan make:model Link后,生成appLink.php文件,这个model通过配置用来管MySQL中的links数据表,在Link这个model 6、从数据库中取出URL并且重定向最后根据生成的URL获取其hash部分,根据hash值从links数据表取出对应的URL为了重定向,这里英文文也是在路由中写逻辑,这里也在路由里写逻辑:Route::

6820
  • 广告
    关闭

    云产品限时秒杀

    云服务器1核2G首年38元,还有多款热门云产品满足您的上云需求

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

    Laravel 5.0 之方法注入

    ----Laravel 5.0 中, 容器可以对其解析的方法进行自动分析, 然后根据类型限制把方法所需要的依赖项自动注入. 本文将介绍这一机制的, 何时解析, 如何注入等. 这就是 SOLID(单一功能, 开闭则, 里氏替换, 接口隔离以及依赖反转) 中的 依赖反转(Dependency Inversion).Laravel 的 容器 被称为 IOC(Inversion 这样, 顶层代码不关注底层到底是由哪个服务来发送邮件--不管是 Mandrill, Mailgun 还是 SendMail, 都不重要, 因为所有 mailer 类都实现相同的接口.Laravel 4 Laravel 的容器让实例化这样的一个类变得很容易, 因为它会自动把依赖项注入构造函数. 比如, 我们可以创建该类的一个新实例, 但不需要传入 Mailer. 因为 Laravel 自动分析构造函数, 知道并且自动替我们注入了这个对象.

    42060

    现代的PHP框架

    现代的PHP框架介绍 今天说一下现在比较流行的PHP框架,直接从github搜一下便可以知道大家现在正在用的框架,大家关注的是什么 Laravel框架 咱们首先来说一下Laravel框架,它被称为为 Laravel is a web application framework with expressive, elegant syntax. Laravel is accessible, yet powerful, providing tools needed for large, robust applications. laravel这个框架很有意思 有些类必须使用PSR接口实现,这一点很重要 2)提供容器,在容器上注入PHP组件驱动,比如路由驱动,ORM驱动,而这些都有现成很好用的组件,composer安装即可 3)中间件支持,完美的扩展PHP处请求到相应的中间事件 Yii 2 is a modern framework designed to be a solid foundation for your PHP application.

    1K60

    通过 Laravel 创建一个 Vue 单页面应用(六)

    提醒一下,本教程并不关注权限;我们使用内置的 Laravel users 表演示如何在 Vue 路由器项目的上下文中使用 CURD。 alert { background: $red; color: $darkRed; padding: 1rem; margin-bottom: 1rem; width: 50%; border: 1px solid 请注意,我们可以花一些时间将 create 和 edit 视图中的表单提取到一个专用组件中,但我们会将其保留一段时间(或者可以自由地独立处)。 作为作业,你可以定义一个单独的用户表单组件来处用户的新建和编辑(如果你认为它值得复用)。目前来说,来回复制代码就够了,但是,最佳实践依然是创建可复用的组件。 文地址:https:laravel-news.combuilding-a-vue-spa-with-laravel-part-6译文地址:https:learnku.comlaravelt34880

    17520

    SOLID则(OOD&OOP)

    SOLID则是面向对象编程和面向对象设计的头五大则。学习及应用这五大则可以构建一个易于维护和扩展的应用程序,我们一起看看到底是那五大则。 Inversion Principle一、单一责任则(SRP)单一责任则指出当需要修改某个类的时候因有且只有一个。 这一种情况违背了SRP则,一个类只负责一件事情,这个时候应该新建一个正方形的类。二、开放封闭则(OCP)开放封闭则指的是程序模块应该遵循关闭修改,开放扩展。这里与单一责任则很好的联系在了一起。 这个则还强制实现高凝聚力,让您更好地解,更强大的类和低耦合,更容易维护,更容易抵抗变化(即不太可能引入错误)。 依赖反转则 抽象不依赖具体,具体依赖于抽象 S.O.L.I.D 则是非常有价值的五大则,在创建和设计一个应用的时候应用这些则,你会创建一个非常优秀的项目。

    46341

    谈谈 SOLID

    Martin制定了面向对象编程的五项则。这五个则使得开发人员可以轻松创建可读性好且易于维护的程序。 这五个则被称为SOLID则。 S:单一职责则O:开闭L:里氏替换则I:接口隔离D:依赖反转我们下面将详细地展开来讨论。 注意:该不仅适用于类,而且适用于软件组件和微服务。 它为什么违反单一职责则?单一职责则指出,一个类(class)应负一个职责,在这里,我们可以看到Animal类做了两件事:Animal的数据维护和Animal的属性管。 构造方法和getAnimalName方法是管Animal的属性,而saveAnimal方法负责把数据存放到数据库。这种设计将来会引发什么问题?

    15700

    SOLID则要这么解!

    说到 SOLID 则,相信有过几年工作经验的朋友都有个大概印象,但就是不知道它具体是什么。甚至有些工作了十几年的朋友,它们对 SOLID 则的解也停留在表面。 今天我们就来聊聊 SOLID 则以及它们之间的关系。 什么是SOLIDSOLID 则其实是用来指导软件设计的,它一共分为五条设计则,分别是:单一职责则(SRP)开闭则(OCP)里氏替换则(LSP)接口隔离则(ISP)依赖倒置则(DIP)单一职责SOLID 则要这么解! - 陈树义的博客上面的代码中,父类对于 hello 方法的定义是只能扔出空指针异常,但子类覆盖父类的方法时,却扔出了其他异常,违背了父类的约定。 而上面说的这四个则,它们的最终目标都是为了实现开闭则。参考资料写了这么多年代码,你真的了解SOLID吗? - 知乎如何SOLID 则?

    11020

    orm 系列 之 Eloquent演化历程2

    数据库管相关的代码都放在Schema目录下, 最开始的结构如下:srcIlluminateDatabaseSchema├── Blueprint.php└── Builder.php就两个文件Blueprint Migrations ├── MigrateCommand.php ├── MigrationRepositoryInterface.php └── Migrator.php此处有个新的知识点,也是laravel 则(SOLID则可以看The Clean Architecture in PHP 读书笔记(三)),将创建PDO这部分功能单独抽离出来,变为了Connectors,然后根据SOLID则,我们再继续看下 ConnectionResolverInterface,分别负责的功能可以看下图:我们可以看到ConnectionInterface负责数据库的操作,ConnectionResolverInterface负责connection的管先这些功能在稍早的版本中都是揉在一起的,还是那个观点: 随着项目复杂度的提升,我们遵循关注点分离的则,不断去对系统做解耦工作 新增功能我们接着本篇开头介绍的migrate功能,来看下v1.1.0版本中有的功能

    14530

    Web前端开发初级中级实操

    3、【代码:首页 index.html】 (提示 * 中间为填空答案 ) 商品展示 < ***ul*** class=clear> 微胖连衣裙 2019网红初秋女装 黑色休闲裤 韩版学生女装 创设计女装 60px; line-height: 60px;*此处设置文字的过渡效果为0.8秒* ***transition***:0.8s;}*用CSS3的实现鼠标经过图片旋转360度,放大1.3倍,离开再旋转还。 欢迎来到Web技术社区 本站包括Bootstrap、PHP、MySQL、Laravel等Web技术教程 Bootstrap PHP MySQL Laravel 4. 1、包管工具安装 Laravel 框架,需要使用 Composer 工具:通过命令 “ composer*create-project laravellaravel survey --prefer-dist ” 创建 survey 工程,创建完毕后,程序目录如图 2、Laravel 框架 MVC 结构Laravel 遵循 model-view-controller (MVC) 模式,MVC 模式的 3 个组件分别为模型

    13620

    【译】浅谈SOLID

    SOLID则是一种编码的标准,为了避免不良设计,所有的软件开发人员都应该清楚这些则。SOLID则是由Robert C Martin推广并被广泛引用于面向对象编程中。 因此,我们应该遵循SOLID则。首先我们需要花一些时间来了解SOLID则,当你能够解这些则并正确使用时,你的代码质量将会得到大幅的提高。同时,它可以帮助你更好的解一些优秀软件的设计。 为了SOLID则,你必须清楚接口的用法,如果你还不解接口的概念,建议你先读一读这篇文章。下面我将用简单易懂的方式为你描述SOLID则,希望能帮助你对这些则有个初步的解。 单一责任则一个类只能因为一个由被修改。A class should have one, and only one, reason to change.一个类应该只为一个目标服务。 这样的操作应该放到持久化层,持久化层负责处数据的持久化的相关操作,包括从数据库中存储或查询数据。所以这个职责不应该属于这个类。

    20420

    基于 Redis + 资源库模式实现 Laravel 应用缓存功能

    今天学院君来给大家演示如何在 Laravel 项目中基于 Redis 实现应用缓存功能,这想必也是很多人日常使用 Redis 最多的业务场景,这里的缓存指的是将数据库查询结果存储到 Redis,其目的是将数据加载从磁盘 在 Redis 系列开篇中已经介绍过,我们可以通过字符串数据结构来实现应用缓存,如果缓存的是对象实例或者集合而非文本字符串,可以通过序列化方式将其转化为文本格式,读取的时候再通过反序列化方式将其还。 引入资源库模式开始之前,我们先将上篇教程对文章模型类 Post 的数据库查询重构为基于资源库模式实现,这样一来,方便我们在资源库这一层引入缓存,从而提升代码复用性,更好地遵循 SOLID 设计则。

    19010

    Laravel框架自定义分页样式操作示例

    本文实例讲述了Laravel框架自定义分页样式操作。 分享给大家供大家参考,具体如下:操作步骤如下:(1) 对应publiccsspaging.css 文件建立分页样式.(2) 控制器查出分页数据使用 paginate函数进行分页处. (禁止使用group by处查询).(3) 对应视图引入分页样式.例如: paging.css 样式文件代码(复制即可用,实际操作过)如下 #pull_right{ text-align:center line-height: 1.42857143; color: #428bca; text-decoration: none; background-color: #fff; border: 1px solid

    19120

    类设计的SOLID

    SOLID则是面向对象范式的核心单一职责则(Single Responsible Principle, SRP):对于一个类,应该仅有一个引起它变化的因。其基础是内聚,表示类完成单一功能的程度。 开放—封闭则(Open Closed Principle,OCP):类应该对扩展开放,对修改关闭。是SOLID则中最重要的一个。OCP 的一个则就是将类之间的耦合到抽象级别。 组合重用则(Composite Reuse Principle,CRP):优先选择对象的多态组合而不是继承。模块内聚  高内聚的模块更易于解、维护和重用。 物分层  最常见的分层模式为展现、业务逻辑以及数据访问三层。但是每个分层中可能会有多个等级。  展现层负责构造和渲染用户界面。 但是,也会导致要管更复杂的结构,使用分离抽象时,会面临灵活性和复杂性之间的取舍。通用指导则如下:如果依赖抽象体的所有类都在同一个模块中,那么将这些类与抽象体放在同一个模块中。

    48000

    两款非常漂亮的markdown格式css样式

    注意如果你用了laravel 框架 你需要在 resourcesviewsvendormailhtmlthemes声明文件.css例如repayment.css第一款非常漂亮灰色高亮格式table {width : 100%; *表格宽度*max-width: 65em; *表格最大宽度,避免表格过宽*border: 1px solid #dedede; *表格外边框设置*margin: 15px auto; 使用单一线条的边框*empty-cells: show; *单元格无内容依旧绘制边框*}table th,table td {height: 35px; *统一每一行的默认高度*border: 1px solid }table tr:nth-child(2n) { background-color: #f8f8f8; }table tr th { font-weight: bold; border: 1px solid #cccccc; margin: 0; padding: 6px 13px; }table tr td { border: 1px solid #cccccc; margin: 0; padding:

    1.9K40

    CSS 预编译语言 Sass 快速入门教程

    为了解决上述问题,出现了很多 CSS 预编译语言,CSS 预编译语言是基于 CSS 语言的语法扩展,除了能解决上述缺乏语言特性带来的问题之外,还支持嵌套书写,减少重复输入父级选择器(可解为 CSS 中的继承机制 后者更加兼容生 CSS 语法,所以我们通常使用后者,接下来的教程我们也使用这种语法。 项目中,开箱提供了 Laravel Mix 进行前端资源的编译,当我们通过 npm install 安装 laravel-mix 的过程中,系统会自动安装 laravel-mix 声明的依赖,其中就包括了编译 PHP 中未指定键名的索引数组,将 Map 解为以字符串作为键名的关联数组): 简单变量$primary-color: #333; 引用变量body { color: $primary-color 还支持样式继承,我们通过 % 前缀指定用于继承的样式,然后在需要继承的地方提供 @extend 指令继承相应的父类样式: 以%开头的父类不会渲染%message-shared { border: 1px solid

    28541

    thinkphplaravel框架bootstrap分页样式

    thinkphp框架和laravel框架都是国内知名的、使用量超大的框架,在每个网站应用中都会涉及到列表页面,但是在实际开发过程中,我们会遇到页面展示的分页没有css样式,表现的非常的丑。  1.42857143;    color: #616161;    text-decoration: none;    background-color: #fff;    border: 1px solid

    24420

    设计的五大则-SOLID

    设计则想必大家在学习面向对象的时候,都学习过下面几大则:SRP 单一职责:该设计则是基于康威定律的推论,每个软件模块有且只有一个被更改的由。OCP 开闭则:对扩展开放,对修改关闭。 LSP 里氏替换则:任何基类可以出现的地方,子类一定可以出现。ISP 接口隔离则:在设计中需要避免不需要的依赖。 DIP 依赖反转则:高层策略性代码不应该依赖底层细节的代码,而应该是底层细节代码依赖高层策略。这五个则也被称为,SOLID则取的是他们的首字母。 这种问题的坏处是,程序员需要在程序里处三个类,这里还介绍了使用门面模式的方法,让我们只需要在我们使用的地方使用一个类即可:? 这样的话我们就不需要关心其他三个类,直接调用门面模式的方法即可。 8.总结本文讲了一下设计的五大SOLIDSOLID在这《架构整洁之道》中一直贯穿,这五大则能帮助我们在设计的时候做出更多优秀的架构设计,如果想了解更多的一些细节可以看看这本书。

    43030

    Top 10 Frameworks for Web Application Development

    Laravel values Elegance, Simplicity, and Readability. One can right away start learning and creating Laravel with Laracasts which has several instructional Laracasts is a screencast instructional exercise site with over a thousand recordings on PHP, Laravel , and frontend advancements in the Laravel biological system that could be viewed as an apprentices paradise CodeIgnitor guarantees with remarkable execution, about zero design and no huge scale solid libraries.ConclusionI

    23330

    Laravel5.2之Artisan命令生成自定义模板

    说明:本文主要讲述Laravel的Artisan命令来实现自定义模板,就如经常输入的php artisan make:controller ShopController就会自动生成一个ShopController.php 关于使用Repository模式来封装下Model逻辑,不让Controller里塞满了很多Model逻辑,这样做是有很多好处的,最主要的就是好测试和代码架构清晰,也符合SOLID则。

    4510

    相关产品

    • 混沌演练平台

      混沌演练平台

      混沌演练平台(CFG)是一款遵循混沌工程实验原理并结合腾讯云内部实践的产品,提供基于真实线上故障的高可用能力演练服务,能够帮助用户的系统提升容错性和可恢复性。

    相关资讯

    热门标签

    扫码关注云+社区

    领取腾讯云代金券