资讯专栏INFORMATION COLUMN

Laravel框架的体系结构

ACb0y / 726人阅读

摘要:开发人员可以通过命令行工具生成和管理项目环境。附带了一个名为的优秀的命令行工具它提供了一些开发过程中有用的命令用,可以用来生成框架代码和数据库管理。这就是的目录结构发挥作用的地方。

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

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

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

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

目录结构

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

正如你看到的,laravel项目下面有4个文件夹:appbootstrappublicvendor,这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");
    }
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/20904.html

相关文章

  • Laravel 和 Spring Boot 两个框架比较创业篇(一:开发效率)

    摘要:小红要以最低成本最快速度推出版本,投放市场,收集反馈,持续迭代。总结在技能掌握充足的情况下,个人感觉开发效率要略高于。 我个人是比较不喜欢去正儿八经的比较两个框架的,这样没有意义,不过欲善其事先利其器! 技术是相通的,但是在某个特定的领域的某个阶段肯定有相对最适合的一个工具! 这里比较不是从技术角度比较,而是从公司技术选型考虑的,特别是初创的互联网创业公司。没办法,谁让互联网公司离不开...

    tinna 评论0 收藏0
  • Laravel 和 Spring Boot 两个框架比较创业篇(一:开发效率)

    摘要:小红要以最低成本最快速度推出版本,投放市场,收集反馈,持续迭代。总结在技能掌握充足的情况下,个人感觉开发效率要略高于。 我个人是比较不喜欢去正儿八经的比较两个框架的,这样没有意义,不过欲善其事先利其器! 技术是相通的,但是在某个特定的领域的某个阶段肯定有相对最适合的一个工具! 这里比较不是从技术角度比较,而是从公司技术选型考虑的,特别是初创的互联网创业公司。没办法,谁让互联网公司离不开...

    zoomdong 评论0 收藏0
  • windows下laravel5.5手写教程1(适合初学者)

    摘要:打开浏览器输入,如无意外,将出现如下图,表示框架安装成功。四系统内部后台管理系统这个是框架自带的后台登录管理系统,只需要简单的命令即可运行。出现上图即为,创建模型成功。 在PHP个各种web开发框架中,laravel算是一款简洁、优雅的开发框架,本人也刚刚接触到laravel,通过学习大神们的一些文章,下面是我的一些心得体会,希望可以给初学者一些帮助,大家一起进步。言归正传: 本人环境...

    GeekGhc 评论0 收藏0
  • Laravel核心解读--完结篇

    摘要:过去一年时间写了多篇文章来探讨了我认为的框架最核心部分的设计思路代码实现。为了大家阅读方便,我把这些源码学习的文章汇总到这里。数据库算法和数据结构这些都是编程的内功,只有内功深厚了才能解决遇到的复杂问题。 过去一年时间写了20多篇文章来探讨了我认为的Larave框架最核心部分的设计思路、代码实现。通过更新文章自己在软件设计、文字表达方面都有所提高,在刚开始决定写Laravel源码分析地...

    laoLiueizo 评论0 收藏0
  • LaravelLaravel 框架关键技术解析·读书笔记(二)

    摘要:框架关键技术解析读书笔记二第五章框架应用程序根目录版本默认的框架应用程序是符合规范的,所以相应的目录结构也是基本固定的,不同的目录加载了功能文件,如果添加了新的目录,需要在文件中添加规范的自动加载部分并执行命令。 Laravel 框架关键技术解析·读书笔记(二) 第五章 框架应用程序根目录(5.1版本) 默认的Laravel框架应用程序是符合PSR规范的,所以相应的目录结构也是基本...

    TIGERB 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<