Laravel5.1框架关键技术解析(读书笔记)

本文介绍了Laravel框架的核心组件,包括Packagist、Composer及自动加载机制。通过Composer下载组件并锁定版本,确保团队一致性。深入探讨了服务容器在Laravel中的作用,用于注册和解析功能实例。此外,文章还涵盖了路由、数据库和视图组件的注册,以及静态方法的概念。提供了一个简单的Laravel项目搭建过程,包括创建composer.json、公共文件夹、路由文件、数据库配置、模型、控制器和视图模板。
摘要由CSDN通过智能技术生成

laravel框架,其本质也是由一堆出色的组件搭配而成,要了解laravel框架,那么就需要了解laravel框架中用到的各类组件。

php中各类组件库中,最为主要的为两个
Packagist
PEAR

其中,Packagist和Composer健米合作,利用Composer可以安装packagist里面的组件,并且完成自动加载。
利用composer将组件下载到本地之后,会生成composer.json和composer.lock两个文件,composer.lock文件会列出项目所有的php组件,以及组件的具体版本号,这样锁定了版本,让项目只能使用具体版本的PHP组件。这样的好处,composer会下载这个文件中列出的具体版本,而不管Packagist中可用的最新版本是多少,你应该把composer.lock文件纳入版本控制,这样让团队成员使用的PHP版本和你一样,如果本地开发和服务器使用php组件版本相同,可以尽量减少由于组件版本不同导致的bug。

composer的自动加载,其实就是名为autoload.php的文件,保存在vendor目录中,Composer下载各个PHP组件时,会检查每个组件的composer.json文件,确定如何加载该组件,得到这个信息后,Composer会在本地为该组件创建一个和服PSR标准的自动加载。这样我们就可以实例化项目中的任何PHP组件。这些组件需要自动加载。

现在我们开始,在本地构造出一个laravel框架。

首先,在本地新建一个composer.json,然后执行composer update,再添加我们的路由组件。illuminate\routing,illuminate\events ,新建我们的入口文件,在项目文件夹下面新建一个public文件夹,然后路由文件新建一个app文件夹,在app文件夹下面新建一个Http文件夹,在Http下建一个route.php文件。

在Laravel框架中,一些功能的生成都需要服务容器来实现,即Illuminate\Container\Contatiner类的实例,服务容器用于服务注册和解析,也就是说服务容器注册能够实现某些功能的实例或回调函数,当需要使用该功能时从服务容器中获取相应的实例来完成。

注册完路由之后,同意可以注册数据库组件Illuminate/database和视图组件Illuminate/view组件。

在加载视图组件的时候,使用setInstance()静态方法获取服务器实例的方法,关于静态方法,
参考 静态方法
声明类属性或方法为静态,就可以不实例化类而直接访问。静态属性不能通过一个类已实例化的对象来访问,但是静态方法可以。

友谊静态方法不需要通过对象既可以调用,所以伪变量$this在静态方法中不可用。
静态方法不可以由对象通过->操作符来访问。
用静态方法调用一个非静态防范会导致一个E_STRICT级别的错误。
就像其他所有的PHP变量一样,静态属性只能被初始化文字或常量,不能使用表达式。所以,可以把静态属性初始化为整数或者数组,但不能初始化为另外一个变量或者函数返回值,也不能指向一个对象。

<?php 
header("content-type:text/html;charset=utf-8");
class Human
{
   
    static public $name = "妹子";
    public $height = 180;
    public $age;

    //构造方法
    public function __contruct()
    {
   
        $this->age = 18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值