开拓职员可以通过命令行工具,天生和管理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');
}
}