thinkphp5.1 - twig使用】的更多相关文章

thinkphp5.1 - twig模板-全局变量我们在定义 ccs 之类的静态文件的时候,经常会使用<link rel="stylesheet" href="__ROOT__/static/css/bootstrap.css" />定义个__ROOT__变量,然后全局替换调 1.如果使用默认模板,那直接在自定义变量要去 config里的template.php 设置 假设你要 __ROOT__,'tpl_replace_string' => ['…
thinkphp5.1 - twig使用1.安装按照:https://github.com/yunwuxin/think-twigTwig Template For ThinkPHP5 安装 composer require yunwuxin/think-twig使用 配置文件里 template.type=Twig 即可 2.使用:public function index(){ return $this->fetch("index");} 参考:其他人写的扩展:https:/…
TODO:macOS上ThinkPHP5和Semantic-UI集成 1. 全局安装 (on OSX via homebrew)Composer 是 homebrew-php 项目的一部分 2. 把Xcode升级到8.1后继续安装Composer 3. 使用composer创建TP5项目MWL-Dispatch composer create-project topthink/think MWL-Dispatch 4. 配置apache,设置Virtual hosts, 在httpd.conf中…
对于ThinkPHP5.0以前的版本,助手函数全部是单字母函数,但到ThinkPHP5之后,使用如下函数来代替单字母函数: 最常用: /** * 实例化Model * @param string $name Model名称 * @param string $layer 业务层名称 * @param bool $appendSuffix 是否添加类名后缀 * @return \think\Model */if (!function_exists('model')) { function model…
ThinkPHP V5.——为API开发而设计的高性能框架 ThinkPHP5..0版本是一个颠覆和重构版本,采用全新的架构思想,引入了很多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载. GitHub项目地址:点击访问 ThinkPHP5在保持快速开发和大道至简的核心理念不变的同时,PHP版本要求提升到5.,对已有的CBD模式做了更深的强化,优化核心,减少依赖,基于全新的架构思想和命名空间实现,是ThinkPHP突破原有框架思路的颠覆之作,其主要特性包括: 基于命名空间和众多PH…
thinkphp,作为国内开源框架,一直在使用和学习. 但是实在忍不住想要吐槽一下他的开发文档,和 对初学者的不友好,建议刚接触MVC思想的人 还是尽量去使用其他框架当入门. 现在来吐槽一下thinkphp5的官方文档,也不知道是为了使程序员有动手能力和解决问题能力,写的就两个字"高深",四个字"高深莫测",完全断了入门程序员的门,想当初学YII,就是因为安装困难,理解困了,当机立断扔了,去搞CI,TP. 虽然THINKPHP5也入之前的版本,可以直接下载,然后使用…
原文地址:http://my.oschina.net/veekit/blog/276800 12. 模板继承 Twig最强大的部分是模板继承.模板继承允许你建立一个基本的"骨架"模板,包含您的网站的所有公用的元素,并定义一些区块(block)让子模板可以覆盖. 听起来似乎很复杂,但其实这是非常基本的.通过一个例子将容易理解它. 让我们定义一个基本模板:base.html.它定义了一个简单的HTML框架文档,假设是你要使用的一个简单的两列分布的页面: <!DOCTYPE html&…
原文地址:http://my.oschina.net/veekit/blog/268828 1. 概要 模板是一个简单的文本文件.它可以生成任何基于文本的格式(HTML.XML.CSV等).它不具有特定扩展名,html或xml都OK. 模板中包含的变量或表达式,用来控制模板的逻辑.当模版被预处理时,它们会被替换为变量值. 下面是说明了一些基本要素的最小模板.稍后我们将介绍更多细节: <!DOCTYPE html> <html> <head> <title>M…
最近打算开一个自己的CMS后台轮子,框架选择了thinkphp 5 (别问我为什么选择这个框架)然后想边开发边记录一下,方便自己方便他人 进入正题 1.数据库设计 一共三张表 post文章表这个就不贴了(在这里没有使用到) 主要是以下两张 一张是存储标签的tag表, 另一张是关系表用于关联标签与文章 2.代码部分 主要我们使用到了thinkphp5的多对多关联(想详细了解的可以看这里 多对多关联) 文章表对应的模型 model/Posts.php <?php namespace app\admi…
1.基本语法 Says something:{{    }} Does something:{%  %} Comment something:{#    #} {% extends "AppWebBundle::layout.html.twig" %}继承模板 2.核心概念: 用类的继承关系去管理页面之间的关系 如果要访问某个bundle里的资源文件,需要将文件拷贝到/web 目录下,或者linux/mac 软连接映射到/web目录下 windows:  >php app/con…
 1.首先将 twig 包放入 system\library 目录. 2.在 system/startup.php 文件最后添加引入语句. require_once(DIR_SYSTEM . 'library/Twig-1.12.3/lib/Twig/Autoloader.php'); 3.在 index.php 文件中,加入twig引擎初始化语句. //twig Twig_Autoloader::register(); $twigLoader = new Twig_Loader_Filesys…
在网站开发过程中模版引擎是必不可少的,PHP中用的最多的当属Smarty了.目前公司系统也是用的Smarty,如果要新增一个页面只需把网站的头.尾和左侧公共部分通过Smarty的include方式引入进来,然后主体部分写内容即可,用起来也是相当方便.这也是一种比较通用的做法.但维护一段时间后发现有些凌乱了: 1. 公共部分内容越加越多了,不需要用的js.css在一些页面也被强制引进来了 2.新页面的css只能写在网页的body内,看起来总让人不爽. 3.左侧.头部.尾部若有特殊显示,操作起来不方…
在使用Symphony项目时,需要一些常用的twig,经过自己做的几个项目,自己的总结如下: 一.twig-数据判断 有时候在使用后台传给前台数据时需要判断是否有这个值,(是否为空(”或null)或是否定义defined或is empty) 例如: 多维数组时: {% if item.image is defined %} <div class=”trade-show-imgs”> {% for img in item.image %} {% if img != “” %} <div c…
yii2 默认使用PHP 和html 混合的方式来写视图层,但我个人还是喜欢纯模板语言的方式.而且已经非常习惯使用twig的语法,最近想使用yii2进行开发,所以还是选择使用twig视图引擎. github 已经有人提供了这样的vendor ,可以直接comoser 配置一下进行使用. composer.json 文件 require 添加 "yiisoft/yii2-twig": "*" 然后 composer update  前往common/config 下…
http://www.kancloud.cn/manual/thinkphp5/118006 www  WEB部署目录(或者子目录) ├─composer.json         composer定义文件 ├─README.md             README文件 ├─LICENSE.txt           授权说明文件 ├─application           应用目录 │  ├─common             公共模块目录(可以更改) │  ├─runtime    …
转自 :http://pengbotao.cn/twig-template-language.html Twig中有两种定界符{% ... %} 和 {{ ... }} , 前一种用来执行语句,比如for循环.IF判断.过滤等操作,后一种模版中用来显示变量. Twig常用用法 可用符号 == != < > >= <= + - ~ * / // % ** | [] . .. and or not in is b-and b-or b-xor部分符号的含义如下 ~:连接两字符串,相当于…
过滤器 变量可以被过滤器修饰.过滤器和变量用(|)分割开.过滤器也是可以有参数的.过滤器也可以被多重使用. 通用过滤器 date过滤器 1.1版本新增时区支持,1.5版本增加了默认的日期格式.格式化时间,这个过滤器和php的date函数无限类似,可处理与 strtotime 兼容的字符串,或 DateTime/DateInterval 的实例,可选的第二个参数用于指定时区,如果所修饰的数据为空则默认为当前时间 {{ article.publishedTime|date(‘Y-m-d H:i:s’…
模板 载入模板 {% include ‘sidebar.html’ %} 当前模板的变量也会传递到 被include的模板里,在那里面可以直接访问你这个模板的变量. {% for comment in comments %} {% set user = users[comment.userId] %} {% include ‘TopxiaWebBundle:CommentWidget:item.html.twig’ %} {% endfor %} 在item.html.twig是可以访问 com…
流程控制 if 语句 if语句在twig中的作用如同if语句在PHP中的一样.1.你可以通过下面这个简单的例子来判断表达式的结果是否正确. {% if online == false %} <p>Our website is in maintenance mode. Please, come back later.</p> {% endif %} 2.你也可以测试数组是否为空 {% if users %} <ul> {% for user in users %} <…
程序会传递给模板若干变量,你需要在模板里输出他们.例如输出$hello .1{{ hello }}.如果传递给模板的是对象或者数组,你可以使用点. 来输出对象的属性或者方法,或者数组的成员.或者你可以使用下标的方式..1 {{ foo.bar }}.2 {{ foo[‘bar’] }}.如果你访问的值不存在就会返回null.TWIG有一整套的流程来确认值是否存在..for.bar会进行以下操作.如果foo是个数组,就尝试返回bar成员,如果不存在的话,往下继续.如果foo是个对象,会尝试返回ba…
由于用惯了ThinkPHP之前的版本,一想到要用Session就直接用$_SESSION来存取,今天看了ThinkPHP5的手册,才发现原来这么用时不安全滴.ThinKPHP5对Session进行了封装,用的时候至少看起来安全多了.   Session的设置   如果想要操作Session,再Think PHP5中需要使用Think\Session这个类 代码示例如下: namespace app\index\controller; use think\Controller; use think…
Twig : PHP 视图模板引擎,类似于Smart模板引擎. 下载地址:http://twig.sensiolabs.org/ Slim: 轻量级PHP MVC框架,可用于构建Web app,Restful API 与 flight框架类似. 下载地址:http://www.slimframework.com/ 配置Slim+Twig开发环境: biz:逻辑业务层 common:公共层 darjuan:第三方框架 templates:视图模板 引入Twig扩展 配置index.php requ…
本人收集了几种方法: 安装前: twig需要依赖PHP 5.2.7 才能运行. 1 通过composer安装(2种) 方法一: 首先确保你已经安装了composer,如果没有安装,可以参考https://getcomposer.org/download/. 已经安装了composer的执行以下命令行: curl -s http://getcomposer.org/installer | php 在项目根目录下创建一个composer.json 文件,内容如下: { "require":…
参考链接:thinkphp的twig模板实现 使用composer安裝好Thinkphp 3.2.3 composer create-project topthink/thinkphp your-project-name 安裝完畢之後,在執行Twig的安裝命令 composer require twig/twig:~1.0 在Think\Library\Think\Template\Driver下建立一個Twig.class.php文件 <?php namespace Think\Templat…
自动加载 概述 ThinkPHP5.0真正实现了按需加载,所有类库采用自动加载机制,并且支持类库映射和composer类库的自动加载. 自动加载的实现由think\Loader类库完成,自动加载规范符合PHP的PSR-4. 自动加载 由于新版ThinkPHP完全采用了命名空间的特性,因此只需要给类库正确定义所在的命名空间,而命名空间的路径与类库文件的目录一致,那么就可以实现类的自动加载. 类库的自动加载检测顺序如下: 1.类库映射检测:2.PSR-4自动加载检测:3.PSR-0自动加载检测: 系…
Redis是一种常用的非关系型数据库,主要用作数据缓存,数据保存形式为key-value,键值相互映射.它的数据存储跟MySQL不同,它数据存储在内存之中,所以数据读取相对而言很快,用来做高并发非常不错. ThinkPhP5.0自带了Redis扩展,在使用之前先下载php_redis.dll 网址 http://windows.php.net/downloads/pecl/releases/redis/2.2.7/ ;根据自己windows操作系统选择相应的版本,我自己是系统64位,安装的是VC…
1.构造函数: 控制器类必须继承了\think\Controller类,才能使用: 方法_initialize 代码: <?php namespace app\lian\controller; use think\Controller; use think\Db; use think\Request; class Index extends Controller { public function _initialize() { echo 'init|||'; } public function…
上篇文章[Thinkphp5实现悲观锁]已介绍过thinkphp5使用悲观锁实现高并发的场景,这篇文章将实际测试下. 在shell里进入到apache的bin目录,输入以下url: ab -n 100 -c 100 http://www.xyh.com/index/index/mysql_unlock [不加锁的情况,模拟100次请求,每次100个用户] 备注:如果提示socket: Too many open files (24),请执行ulimit -a,然后ulimit -n 1024.下…
悲观锁介绍(百科): 悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态.悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系统不会修改数据). 使用场景举例:以MySQL InnoDB为例 商品goods表,假设商品的id为2,购买数量为1,status为1表示上架中,2表示下架.现在用户购买…
1.Windows 系统,下载并运行 Composer-Setup.exe. 2.安装compose.PHP采用的是wampserver集成开发环境(这也之后的问题埋下伏笔). 3.然后在命令行下面,切换到你的web根目录下面并执行下面的命令: composer create-project topthink/think tp5 --prefer-dist 上面是官方的compose安装方法.简单扼要,但是对于不熟悉的人来说还是要折腾一会儿.其中命令中的tp5就是即将要新建的项目文件夹的名称,你…