- 浏览: 609797 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
kangh:
转载的也拿出来 都不试一下 完全错误
Nginx+ffmpeg的HLS开源服务器搭建配置及开发详解 -
wangtxlz:
#cd builders/cmake#cmake .系统提示命 ...
crtmpserver流媒体服务器的介绍与搭建 -
hnraysir:
支持支持支持
手机Android音视频采集与直播推送,实现单兵、移动监控类应用 -
wuent:
把web服务器和php框架绑定到一起?真不建议这样。。。
Swoole(PHP高级Web开发框架) -
wuent:
有更详细的性能比较吗?php,python,java
PHP中的(伪)多线程与多进程
1、到相应站点下载Smarty的源码包;
2、将源码包里面的libs文件夹copy到CI的项目目录下面的libraries文件夹下,并重命名为Smarty;
3、在项目目录的libraries文件夹内新建文件Cismarty.php,里面的内容如下:
1 |
<?php |
2 |
if (!defined( 'BASEPATH' )) EXIT ( 'No direct script asscess allowed' );
|
3 |
4 |
require_once ( APPPATH . 'libraries/Smarty/Smarty.class.php' );
|
5 |
6 |
class Cismarty extends Smarty {
|
7 |
8 |
protected $ci ;
|
9 |
10 |
public function __construct(){
|
11 |
12 |
$this ->ci = & get_instance();
|
13 |
14 |
$this ->ci->load->config( 'smarty' ); //加载smarty的配置文件
|
15 |
16 |
//获取相关的配置项
|
17 |
$this ->template_dir = $this ->ci->config->item( 'template_dir' );
|
18 |
$this ->complie_dir = $this ->ci->config->item( 'compile_dir' );
|
19 |
$this ->cache_dir = $this ->ci->config->item( 'cache_dir' );
|
20 |
$this ->config_dir = $this ->ci->config->item( 'config_dir' );
|
21 |
$this ->template_ext = $this ->ci->config->item( 'template_ext' );
|
22 |
$this ->caching = $this ->ci->config->item( 'caching' );
|
23 |
$this ->cache_lifetime = $this ->ci->config->item( 'lefttime' );
|
24 |
}
|
25 |
26 |
} |
4、在项目目录的config文件夹内新建文件smarty.php文件,里面的内容如下:
1 |
<?php if ( ! defined( 'BASEPATH' )) exit ( 'No direct script access allowed' );
|
2 |
$config [ 'theme' ] = 'default' ;
|
3 |
$config [ 'template_dir' ] = APPPATH . 'views' ;
|
4 |
$config [ 'compile_dir' ] = FCPATH . 'templates_c' ;
|
5 |
$config [ 'cache_dir' ] = FCPATH . 'cache' ;
|
6 |
$config [ 'config_dir' ] = FCPATH . 'configs' ;
|
7 |
$config [ 'template_ext' ] = '.html' ;
|
8 |
$config [ 'caching' ] = false;
|
9 |
$config [ 'lefttime' ] = 60;
|
5、在入口文件所在目录新建文件夹templates_c、cache、configs;
6、在项目目录下面的config目录中找到autoload.php文件
修改这项
1 |
$autoload [ 'libraries' ] = array ( 'Cismarty' ); //目的是:让系统运行时,自动加载,不用认为的在控制器中手动加载
|
7、在项目目录的core文件夹中新建文件MY_Controller.php 内容如下:
1 |
<?php if (!defined( 'BASEPATH' )) exit ( 'No direct access allowed.' );
|
2 |
3 |
class Controller extends CI_Controller {
|
4 |
5 |
public function __construct() {
|
6 |
7 |
parent::__construct();
|
8 |
9 |
}
|
10 |
11 |
public function assign( $key , $val ) {
|
12 |
$this ->cismarty->assign( $key , $val );
|
13 |
}
|
14 |
15 |
public function display( $html ) {
|
16 |
$this ->cismarty->display( $html );
|
17 |
}
|
18 |
} |
//================================================================
配置完毕
//================================================================
使用方法:
在控制器中如:
1 |
<?php if ( ! defined( 'BASEPATH' )) exit ( 'No direct script access allowed' );
|
2 |
3 |
class Welcome extends Controller {
|
4 |
5 |
public function __construct(){
|
6 |
parent::__construct();
|
7 |
}
|
8 |
9 |
public function index()
|
10 |
{
|
11 |
$data [ 'title' ] = '测试' ;
|
12 |
$data [ 'test' ] = '123456789' ;
|
13 |
$this ->assign( 'test' , $data );
|
14 |
$this ->assign( 'tmp' , 'hello' );
|
15 |
$this ->display( 'test.html' );
|
16 |
}
|
17 |
} |
然后再视图中:试图文件夹位于项目目录的views之下:
新建文件test.html
1 |
<!DOCTYPE html> |
2 |
<html> |
3 |
<head> |
4 |
<meta charset= "utf-8" >
|
5 |
<title>{ $test [ 'title' ]}</title>
|
6 |
7 |
<style type= "text/css" >
|
8 |
</style> |
9 |
</head> |
10 |
<body> |
11 |
12 |
{ $test [ 'test' ]|md5}
|
13 |
<br> |
14 |
{ $tmp }
|
15 |
123 |
16 |
17 |
</body> |
18 |
</html> |
发表评论
-
nginx、php-fpm默认配置与性能–TCP socket还是unix domain socket
2015-04-02 11:14 1472前几天看到一篇博客,提到php所在服务器在大并发情况下,频 ... -
使用socket方式连接Nginx优化php-fpm性能
2015-04-01 13:49 0Nginx连接fastcgi的方式有 ... -
PHP中include和require的区别详解
2015-04-01 08:32 01、概要 require()语句的性能与includ ... -
PHP 中cookie 和 session 的分析
2015-03-31 12:33 0HP 中cookie 和session 的分析 ... -
php 经典的算法题你懂的
2015-03-31 12:31 0有5个人偷了一堆苹果,准备在第二天分赃。晚上,有一人遛出来, ... -
PHP最常用的2种设计模式工厂模式和单例模式介绍
2015-03-31 12:26 0简单来说,PHP单例模式就是一个功能用一个类来实现,并且在整 ... -
PHP 数据类型
2015-03-31 12:23 0PHP 数据类型 PHP 支持八种原始类型(type)。 ... -
PHP mcrypt启用、加密以及解密过程详解
2015-03-30 11:32 1462Mcrypt扩展库可以实现加密解密功能,就是既能将明文加密, ... -
PHP扩展实现类扩展
2015-03-27 14:08 579在第一篇文章中,我们所开发的扩展是单个函数,本篇文章看一下 ... -
PHP高级工程师的面试题
2015-03-06 10:35 01. 基本知识点 HTTP协议中几个状态码的含义:1x ... -
PHP面试中常见的面试试题与算法例子
2015-03-05 14:14 0下面是四道比较常见的题目,主要考察的是对字符串函数以及文件操 ... -
PHP实现四种常用的排序算法
2015-03-05 14:09 0插入排序(Insertion Sort),选择排序(Sele ... -
用swagger-php/ui做API测试
2015-02-13 09:46 3651功能: 1 swagger-php根据自定义的规则生成API ... -
app后端设计(0)--总目录
2015-01-23 18:03 0做了3年app相关的系统架构,api设计,先后在3个创业公司中 ... -
PHP中eAccelerator、memcached、xcache、APC 4个加速、缓存扩展的区别
2015-01-23 10:26 917这篇文章主要介绍了PHP ... -
PHP内核探索:zend_parse_parameters函数
2015-01-16 14:14 967最简单的获取函数调用者传递过来的参数便是使用zend_pars ... -
实战:用C写php扩展(二)
2015-01-16 11:05 999一、前言 在我的上一篇文章“实战:用C写php扩展(一)”里介 ... -
实战:用C写php扩展(一)
2015-01-16 11:04 10191、 前言 首先,确保你的机器安装了apache和php。假 ... -
JavaScript or PHP 来检测移动设备
2014-09-22 10:04 633iPhone & iPod Detection T ... -
YII Framework学习教程-YII的Modules(模块化)
2014-08-27 11:04 753一个相对来说大的项目。如果按照yii生成的 ...
相关推荐
4. **扩展核心类**:通过扩展CI的控制器,将Smarty的assign和display方法直接集成到控制器中,使得在CI中使用Smarty时,可以像使用原生方法一样方便。 ### 具体集成步骤与技巧 #### 1. 下载与配置Smarty 首先需要...
3. **加载Smarty库**:在CI的`autoload.php`文件中,添加对Smarty库的自动加载,或者在需要使用Smarty的控制器中手动加载。 4. **创建控制器方法**:在控制器中,我们需要实例化Smarty,分配数据,并渲染模板。例如...
- 将解压后的Smarty文件夹中的libs文件夹重命名为smarty,并复制到CI框架的libraries文件夹内。 第二步:配置CI框架以使用Smarty - 在CI框架的libraries目录下创建一个新的PHP文件,例如tp.php,这个文件名是自定义...
1. **模板语法**:Smarty 提供了一套自定义的模板语法,比如使用`{foreach}`处理循环,`{if}`、`{elseif}`、`{else}`进行条件判断,以及`{assign}`变量赋值等,这些都使模板代码更接近自然语言。 2. **模板缓存**:...
7. **模板引擎的使用**:尽管课程名称中提到"模板",但在CI框架中,模板引擎通常是可选的,如使用Twig或Smarty,它们能进一步提升视图的可读性和复用性。 通过这个课程,你将不仅理解CI框架的基本原理,还能具备...
CI允许开发者使用PHP语法直接在视图文件中编写,也可以使用模板引擎如Twig或Smarty进行更复杂的布局和逻辑处理。视图文件通常位于`application/views`目录下。 3. **Controller**:控制器是MVC中的核心组件,它处理...
在提供的`user_guide`文件中,通常包含了关于CI框架的详细文档,包括安装、配置、核心类库介绍、数据库操作、错误处理、辅助函数、视图和控制器的使用方法,以及如何扩展CI框架等内容。新手可以按照这份指南逐步学习...
通过以上步骤,SMARTY3就能在CodeIgniter框架中使用了。这样一来,开发者便可以利用SMARTY3的模板管理和缓存功能,提高Web应用的性能和维护效率。在此过程中,了解SMARTY3的基本使用方法和CodeIgniter框架的加载机制...
在模板中使用: ```html {$date|formatDate:'Y-m-d H:i:s'} ``` 六、模板继承与块(section) Smarty支持模板继承,通过`extends`和`block`关键字,实现模板的复用和定制。 ```html <!-- base.tpl --> <title>{...
5. 视图与模板:视图是用户界面的部分,可使用CI的视图系统或第三方模板引擎如Twig、Smarty等进行渲染。适配过程中,需要根据设计稿创建相应的视图文件。 6. 库、辅助函数与插件:CI提供了丰富的库、辅助函数和插件...
在"CI_Smarty"类中添加以下方法: ```php public function initialize() { require_once(APPPATH . 'libraries/Smarty/libs/Smarty.class.php'); $this->smarty = new Smarty(); // 设置模板目录 $this->...
了解如何正确使用Session、CSRF保护、加密服务等,以及如何避免常见的安全漏洞,是使用CI框架的重要环节。 **十、扩展与第三方库** CodeIgniter允许通过Composer安装第三方库,如-ionAuth(身份验证库)、TankAuth...
8. **模板引擎和前端优化**:可能使用CI的视图助手或第三方模板引擎,如Twig或Smarty,提升代码可维护性和用户体验。 9. **错误处理和日志记录**:学习如何设置和处理错误,以及记录系统日志,为后期排查问题提供...
开发者可以在CodeIgniter控制器中使用`assign`方法来传递数据到模板,然后使用`display`方法来渲染模板。由于Smarty支持编译和缓存,所以当频繁访问相同的页面时,可以显著减少服务器的负载,提高页面响应速度。 ...
1. 下载Smarty:首先需要从Smarty的官方网站下载最新版本的Smarty类库,并解压到CodeIgniter的libraries目录下,例如:ci/application/libraries/SMARTY-2.6.20。 2. 编写类库文件Mysmarty.php:创建一个继承自...
1. **foreach循环**:在Smarty中,`foreach`语句用于遍历数组或对象集合,语法如下: ``` {foreach from=$array item=item name=loop} {$item} {/foreach} ``` 其中`from`属性指定了循环的数据源,`item`属性...
以DEMO示例中的Welcome控制器为例,以下代码展示了如何在控制器中使用CI_Smarty类来加载和显示一个模板: ```php class Welcome extends CI_Controller { public function __construct() { parent::__construct()...
5. **templates_c/** - Smarty编译后的模板文件存放目录,这些是模板文件被解析后生成的PHP代码。 6. **classes/** - 可能包含自定义的PHP类,如用户管理、留言管理等。 7. **database.sql** - 数据库创建和初始化的...
5. **模板引擎**:尽管CI默认不强制使用模板引擎,但它推荐使用View助手函数或第三方模板库,如Twig或Smarty,以实现更灵活的视图渲染。 6. **分页类**:内置的分页类可以帮助开发者轻松实现页面的分页功能,提高...