PHP模板引擎和框架

文章目录
  1. 1. 模版引擎
    1. 1.0.0.1. Smarty
    2. 1.0.0.2. Smarty在使用过程中需要注意哪些细节?
  • 2. 框架
    1. 2.0.1. Laravel
      1. 2.0.1.1. 优缺点
    2. 2.0.2. ThinkPHP
      1. 2.0.2.1. 生命周期
      2. 2.0.2.2. 优缺点
  • 模版引擎

    Smarty

    Smarty是用php写出来的模板引擎,也是目前业界最著名的php模板引擎之一。
    它分离了逻辑代码和外在的显示,提供了一种易于管理和使用的方法,用来将混杂的PHP逻辑代码与html代码进行分离。

    Smarty在使用过程中需要注意哪些细节?

    Smarty是基于MVC概念的一种模板引擎,它将一个页面程序分成了两部分来实现:即视图层和控制层,也就是说smarty技术将用户UI与php代码分离开。这样程序员和美工各司其职,互不干扰。

    框架

    Laravel

    优缺点

    优点:
    1、代码比较明白易懂,跟英语句子差不多,关键词就是函数,举个例子,获取数据库中某个表的所有数据:

    1
    2
    3
    $article=new Article;
    $articles=$article->all(); //这样就得到了articles表所有记录的所有字段;
    $count = $article->where('class_id','=', 1)->count();

    2、文档非常丰富,社区也是非常活跃,现在全球范围内占有率最高,基本上所有的问题都可以找到答案;
    3、大量的第三方开源库(composer收录的超过5500个包),可以快速方便的实现模块功能,第三方优秀的包官方都有详细使用手册。例如:laravel/collective
    4、安全机制非常齐全,提交表单的数据验证(验证有差不多80种,能想到的基本都有),提交数据时产生随机_token验证,避免非法提交,能避免跨域攻击;
    5、中间件和路由,对访问进行过滤及控制,调用函数类和方法前进行判断请求的合法性,避免非法请求;
    6、错误处理机制简单好用,如果出错直接调用$error->all(),即可输出全部错误,对表单验证尤其好用;

    缺点:
    1、稍复杂,上手比一般框架要慢;
    2、大量引用第三方包,但我们只使用类中的部分方法,代码显得有些冗余;
    3、性能与一般框架稍有优势,但比yaf等小型框架效率会低一些。

    ThinkPHP

    生命周期
    1. 入口文件 - 用户发起的请求都会经过应用的入口文件,通常是 public/index.php文件。
    2. 引导文件 - 接下来就是执行框架的引导文件,start.php文件就是系统默认的一个引导文件。
    3. 注册自动加载 - 系统会调用 Loader::register()方法注册自动加载,在这一步完成后,所有符合规范的类库(包括Composer依赖加载的第三方类库)都将自动加载。
    4. 注册错误和异常机制 - 执行Error::register()注册错误和异常处理机制。
    5. 应用初始化 - 执行应用的第一步操作就是对应用进行初始化。
    6. URL访问检测 - 应用初始化完成后,就会进行URL的访问检测,包括PATH_INFO检测和URL后缀检测。
    7. 路由检测 - 如果开启了url_route_on参数的话,会首先进行URL的路由检测。
    8. 分发请求 - 在完成了URL检测和路由检测之后,路由器会分发请求到对应的路由地址,这也是应用请求的生命周期中最重要的一个环节。
    9. 响应输出
    10. 应用结束
    优缺点

    优点
    TP借鉴了Java思想,基于PHP5,充分利用了PHP5的特性,部署简单只需一个入口文件,一切搞定,简单高效,中文文档齐全,入门超级简单。自带模板引擎,具有独特的数据验证和自动填充功能,框架更新速度比较迅速。
    缺点
    一个Model中可以操作多个表,但TP只能一个。TP默认初始化了很多配置,使用起来很方便,但自然也会影响效率。但是把一些加载配置的时间拿去研究算法,这些小影响近乎可以忽略了。