Laravel被称为“全栈”式框架,因为它能够处理从网络服务到数据库管理、HTML生成的一切事情,垂直集成的web开发环境给开发者提供了更好的体验。

开发人员可以通过命令行工具,生成和管理Laravel项目环境。Laravel附带了一个名为Artisan的优秀的命令行工具,它提供了一些开发过程中有用的命令用,可以用来生成框架代码和数据库管理。它是基于强大的Symfony Console 组件开发的。

Laravel的目标是给开发者创造一个愉快的开发过程,并且不牺牲应用的功能性。快乐的开发者才能创造最棒的代码!为了这个目的,我们博取众框架之长处集中到Laravel中,这些框架甚至是基于Ruby on Rails、ASP.NET MVC、和Sinatra等开发语言或工具的。

Laravel是易于理解并且强大的,它提供了强大的工具用以开发大型、健壮的应用。杰出的IoC、数据库迁移工具和紧密集成的单元测试支持,这些工具赋予你构建任何应用的能力。

目录结构

这是所有laravel项目具有基本上相同的目录结构,其中的每个文件都具有指定的地方。通过对目录结构的约定,确保你是按照“laravel方式”来工作。

正如你看到的,laravel项目下面有4个文件夹:app、bootstrap、public、vendor,这4个文件夹下面又有很多个子文件夹,当你第一次看到这么丰富的文件夹内容时,是不是觉得很有压力?没关系,我们会逐一的来了解不同的文件夹。

app 包含了站点的controllers(控制器),models(模型),views(视图)和assets(资源)。这些是网站运行的主要代码,你会将你大部分的时间花在这个目录里。

bootstrap 用来存放系统启动时需要的文件,这些文件会被如index.php这样的文件调用。

public 这个文件夹是唯一外界可以看到的web服务器的目录。它含有laravel框架核心的引导文件index.php,这个目录也可用来存放任何可以公开的静态资源,如css,Javascript,images等

vender

app目录

正如上面提到的,所有laravel中有趣的事情都会产生在app目录,让我们多了解一些里面的内容。

我们通过上面的表格可以看到,只要花一些心思在建立和命名的文件上,就能得到一个具有良好文件系统的结构化的应用。

模型-视图-控制器(MVC)

让我们更深一步了解如何建立laravel应用。你可能已经注意到,app目录下面有三子目录:models,views,controllers。这是表明了laravel是model-view-controller(MVC)架构模式,它将“业务逻辑”与图形用户界面相关的输入和显示逻辑(GUI)分离。在laravel Web应用中,业务逻辑通常由数据模型(如用户,博客文章)组成,GUI则只是一个浏览器中的页面。MVC设计模式在Web的开发领域中非常受欢迎。

MVC模式的三个要素:

模型(model)

视图(view)

控制器(controller)

Laravel的响应流程

一个典型的laravel应用程序由上面提到的MVC组成

当访问一个laravel应用程序时,浏览器发送一个请求,由Web服务器接收并传递到laravel的路由引擎。该laravel路由器接收到请求后,根据配置重定向到相应的控制器类的方法。

然后由控制器类接管。在某些情况下,控制器将立即渲染一个视图,这是一个模板,将被转换成HTML并且发送回浏览器。更普遍的动态网站,控制器与模型进行交互,与数据库进行通信。调用模型后,控制器呈现最终视图(HTML、CSS和图像)并返回完整的web页面到用户的浏览器。

Laravel提倡模型、视图和控制器,应保持完全独立的存储单独的文件在不同的目录。这就是laravel的目录结构发挥作用的地方。

像MVC这样的设计模式的产生,就是为了让开发者的工作更加轻松。这就是Laravel比那些不用任何模式的PHP厉害的地方。如果这种讨论你现在感觉很抽象,不用担心!当你开始用Laravel工作,你都不会意识到你是在一种设计模式中工作。过一段时间后,就会变得自然了。

数据模型

数据模型是任何应用程序的基础,它建立了应用程序的业务逻辑。每一块数据通过使用一个数据库表表示。laravel提供了一些技术来简化对数据库的访问。

Laravel通过将数据库中的表行转成能被轻松操纵的PHP对象,来连接应用程序的数据模型和数据库表。它还使您能够执行业务规则,描述在应用程序中不同的数据模型之间的关系等。例如,一个人的家庭关系可以用Laravel Eloquent OR / M描述如下:

class Person extends Eloquent

{

public function mother()

{

return $this->belongsTo('Mother');

}

public function father()

{

return $this->belongsTo('Father');

}

public function spouse()

{

return $this->hasOne('Spouse');

}

public function sisters()

{

return $this->hasMany('Sister');

}

public function brothers()

{

return $this->hasMany('Brother');

}

}

php框架laravel构造者,Laravel框架的体系结构相关推荐

  1. 使用php框架文件上传,Laravel框架文件上传功能实现方法示例

    本文实例讲述了Laravel框架文件上传功能实现方法.分享给大家供大家参考,具体如下: 以Laravel 5.2.45 框架为主,进行文件上传功能的实现如下: 实现步骤: (1). 配置文件修改 打开 ...

  2. Laravel 成为最佳 PHP 框架的 14 个理由!

    作者 | Manik 译者 | 苏本如,责编 | 屠敏 出品 | CSDN(ID:CSDNnews) 以下为译文: 在开发应用程序时选择使用哪个框架,这将取决于很多因素.和其它任何应用程序框架一样,L ...

  3. 【Laravel】Laravel-admin后台框架-2创建数据表建立模块增删改查CURD(2)

    前言 前面的操作我们已经能够 安装Laravel-admin 创建数据表并生成模型 修改模型实现按业务写入数据 可以参考之前的文章 [Laravel]Laravel-admin后台框架-2创建数据表建 ...

  4. [Laravel框架学习一]:Laravel框架的安装以及 Composer的安装

    1.先下载Composer-Setup.exe,下载地址:下载Composer .会自动搜索PHP.exe的安装路径,如果没有,就手动找到php路径下的php.exe. 2.在PHP目录下,打开php ...

  5. [转载]浅析jQuery框架与构造对象

    浅析jQuery框架与构造对象 这是一些分析jQuery框架的文字 针对jQuery 1.3.2版本 面向的读者应具备以下要求 1.非常熟悉HTML 2.非常熟悉javascript语法知识 3.熟悉 ...

  6. 浅谈PHP几款框架的优缺点,PHP主流框架有什么优缺点

    PHP主流框架有什么优缺点 发布时间:2020-07-20 14:10:28 来源:亿速云 阅读:55 作者:Leah 这期内容当中小编将会给大家带来有关PHP主流框架有什么优缺点,文章内容丰富且以专 ...

  7. php框架laravel_Laravel简介(PHP框架)

    php框架laravel 介绍 (Introduction) Laravel is a powerful framework of PHP which is used to develop a web ...

  8. ThinkPHP5.1.x 框架源码分析之框架的灵魂

    一.类的自动加载初始 框架的灵魂,类的自动加载 为什么说是框架灵魂呢,一般框架都会有类的自动加载,当引入文件很多的时候,就会需要用到.这一个也是很多人想去阅读源码时卡住的点 源码阅读 打开到入口文件 ...

  9. 19 Go Web 框架(二):框架技术详解

    一. net/http包够用吗? Go的net相关标准包提供web开发的大多数实现支持,如果你的项目的路径端点在十个以内,如一个简单的企业网站,这当然是够用的.但如果你的项目是构建一个大型电商网站,有 ...

  10. 向军2017年最新laravel开发宝典 laravel结合vue与接口开发webapp实战视频教程

    课程介绍: Laravel是一套简洁.优雅的PHP Web开发框架(PHP Web Framework).它不仅可以让我们从面条一样杂乱的代码中解脱出来,还可以帮我们构建一个完美的网络APP,而且每行 ...

最新文章

  1. Linux系统上用Sigil创建和编辑 EPUB 文件
  2. SAP MM 可以通过STO在公司间转移质检库存?
  3. 20155222 2016-2017-2 《Java程序设计》第10周学习总结
  4. Linux命令 iperf - 网络性能测试工具
  5. java中的JDBC用户管理系统_Java+JDBC学生信息管理系统
  6. 关于换行这个动作,win 和 mac 的实现
  7. sqL编程篇(三) 游标与存储过程
  8. 微信公众号开发笔记1-获取Access Token
  9. 数据可视化揭晓NBA球星顶薪背后的真相
  10. java 获取自绘窗口_iPhone中自绘实现步骤
  11. 2017百度之星复赛:1003. Pokémon GO(递推)
  12. 京东、宅急送的微服务实践分享(下)| 架构师小组交流会
  13. 三菱PLC MC协议
  14. Unity3d和连接MySQL数据库实现登陆注册等功能
  15. APPstore上架问题 ERROR ITMS-90096
  16. artwork will be rounded down because......
  17. LeetCode--第25题K个一组翻转链表
  18. python绘制网格线在原图上面_图像上使用JES(python)的白色网格线
  19. 改进的粒子滤波算法及其应用研究(Matlab代码实现)
  20. 智能对话机器人发展的困惑-聊天实录

热门文章

  1. python爬携程_Python crawler:对携程的航班数据进行抓取,python,爬虫,爬取
  2. 谈谈目前国内IDC主机管理系统现状和使用感受
  3. 台式计算机网卡驱动不能正常使用,电脑网卡驱动程序不正常怎么办 网卡驱动程序不正常解决方法...
  4. 关于win10安装CPC专利软件以及win10安装office2003
  5. CodeBlocks配置openGL教程
  6. java怎么生成class文件_怎样将java的class文件生成jar包
  7. html 屏蔽广告显示,JS判断网页广告被屏蔽解,广告终结者、AdGuard插件判断并提示...
  8. 区块链:数字广告假量的“终结者”
  9. 你的脸儿圆又圆改变MSN头像(转)
  10. swf转html5批量转换,gif转swf转换工具,gif转swf格式转换器|批量转换