yii具有很多当今web2.0开发所需要的特性。下边是一个简短列表。
MVC设计模式 :yii在WEB设计中采用经过验证的技术,可以较好的把显示与逻辑分离。
DAO,活动记录:yii充许在对象方面建立数据库模型,保存长而重复语句。
整合jquery:最流行的javascript框架之一,苦于jquery可以定屈非常高效并且多功能的javascript接口
表单输入验证:yii可以很简单啊安全的采集表单输入。具有一整套验证方法确保输入数据的正确,还有辅助的方法与组件,在验证失败时,提示错误信息。
WEB2.0组件:jquery提供的一套web2.0组件,可以自动完成输入域,树形视图等等。
验证与授权:yii内置验证。通过分级的基本角色访问控制提供授权。
主题:可以立即更改yii应用的主题。
WEB服务:yii支持自动复杂的WSDL服务说明的产生和服务请求处理的管理.
国际化和本地化:yii支持信息翻译,日期时间格式化,数字格式化和界面本地化。
分层缓存计划:yii支持数据缓存,页面缓存,片断缓存和动态内容。且缓存的存储介质可以在不改变应用代码下被更改。
错误处理和日志:错误被处理并且很人性化的显示,日志信息可以实现分类,过滤,并可以路由到不同的目的地。
安全:yii提供许多安全措施保证WEB应用阻止网络攻击。包括:防止跨站脚本,防止伪跨站点请求,防止窜改cookie等等。
遵守xhtml:由yiit组件和命令行工具生成的代码遵守xhtml标准。
自动代码生成:yii提供自动生成所需代码的工具,比如:应用框架,CRUD应用等。
完全的面向对象:yii框架遵守严格的面向对象的程序设计模式。不定义任何全局函数或变量。所定义的类层次结构给予最在程度的可用性和可定制性。
支持第三方代码:yii可以很好的支持第三方代码。例如,可以在YII应用中使用PERA或者zend framework。
详细的文档:每一个方法或者属性都有明确的说明。提供综合指导与其他方面的指导。
扩展库:yii提供由使用者撰写的组件构成的扩展库。
项目主页是: www.yiiframework.com/
其实安装yii就和安装ZendFramework没什么区别,要么在每个项目中包含yii,要么在服务器用php的include_path来包含。
解压缩下载下来的文件夹后,里面有三个子文件夹:demos(演示),framework(框架核心代码),requirements(这个里边儿是检测你的服务器配置是否支持yii框架,主要是php扩展方面)
接下来就先进行测试吧,把里面的requirements目录单独复制到你的web目录下,然后运行 xxx.xxx.com/requirements,这样会显示类似如下图所示,
image
php_yii_requirements_1
PDO MySQL扩展模块 未通过 所有和数据库相关的类 如果使用MySQL数据库,这是必须的。
PDO PostgreSQL扩展模块 未通过 所有和数据库相关的类 如果使用PostgreSQL数据库,这是必须的。
APC扩展模块 未通过 CApcCache
SOAP扩展模块 未通过 CWebService, CWebServiceAction
我的服务器目前有着四项没有通过,出去PDO PostgreSQL这项我不需要,打算把其他三项给加上。
PDO MySQL的扩展需要在编译php的时候增加 --with-pdo-mysql=/usr/local/mysql
SOAP需要增加 --enable-soap 和 --with-libxml-dir=/usr/local/libxml2
然后进行编译安装
?[Copy to clipboard]View Code BASH
1
./configure --prefix=/usr/local/php-5.2.9/ --enable-force-cgi-redirect --enable-mbstring=all --enable-mbregex --enable-mbstr-enc-trans --enable-versioning --enable-trans-sid --enable-ftp --with-mysql=/usr/local/mysql/ --with-apxs2=/usr/local/apache2/bin/apxs --with-soap=yes --with-curl=/usr/local/curl/ --with-zlib-dir=/usr/local/zlib/ --with-mcrypt=/usr/local/libmcrypt/ --with-gd=/usr/local/gd2 --with-jpeg-dir=/usr --with-freetype-dir=/usr/local/freetype --with-ttf --with-png-dir=/usr --with-mhash=/usr/local/mhash/ --with-dom=/usr/local/libxml2 --with-iconv=/usr/local/libiconv --with-openssl=/usr/local/openssl --with-pdo-mysql=/usr/local/mysql --enable-soap --with-libxml-dir=/usr/local/libxml2 && make && make install
由于之前进行过memcached的安装,所以这里再重新来一遍
?[Copy to clipboard]View Code BASH
1
2
3
4
/usr/local/php/bin/phpize
./configure --prefix=/usr/local/memcached_phpclient3.0.4 --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir=/usr/local/zlib/
make
make install
安装完成后显示:
Installing shared extensions: /usr/local/php-5.2.9//lib/php/extensions/no-debug-non-zts-20060613/
下来修改php.ini
首先找到extension_dir,默认的应该是:extension_dir = "./"
现在修改成:extension_dir = "/usr/local/php//lib/php//extensions/no-debug-non-zts-20060613/"
然后再找到Dynamic Extensions,在下面加上:
extension=memcache.so
APC扩展模块儿比较麻烦:
它的下载地址是:http://pecl.php.net/package/apc
可以从下面的列表儿选择你需要的来下载。我下载的是3.0.19 stable版本。
解压缩后进入目录,并执行如下命令:
?[Copy to clipboard]View Code BASH
1
2
3
4
/usr/local/php/bin/phpize
./configure --enable-apc --enable-apc-mmap --with-php-config=/usr/local/php/bin/php-config
make
make install
然后再次修改php.ini文件,
加入:
extension=apc.so
apc.enabled = 1
apc.cache_by_default = on
apc.shm_segments = 1
apc.shm_size = 32
apc.ttl = 600
apc.user_ttl = 600
apc.num_files_hint = 0
apc.write_lock = On
apc配置的一些说明:
apc.cache_by_default = On
是否默认对所有文件启用缓冲。 若设为Off并与以加号开头的apc.filters指令一起用,则文件仅在匹配过滤器时才被缓存
apc.enabled = On
是否启用APC,如果APC被静态编译进PHP又想禁用它,这是唯一的办法。
pc.filters =
一个以逗号分隔的POSIX扩展正则表达式列表。
如果源文件名与任意一个模式匹配,则该文件不被缓存。
注意,用来匹配的文件名是传递给include/require的文件名,而不是绝对路径。
如果正则表达式的第一个字符是"+"则意味着任何匹配表达式的文件会被缓存,如果第一个字符是"-"则任何匹配项都不会被缓存。"-"是默认值,可以省略掉。
apc.ttl = 0
缓存条目在缓冲区中允许逗留的秒数。0 表示永不超时。建议值为7200~36000。设为 0 意味着缓冲区有可能被旧的缓存条目填满,从而导致无法缓存新条目。
apc.user_ttl = 0
类似于apc.ttl,只是针对每个用户而言,建议值为7200~36000。
apc.gc_ttl = 3600
缓存条目在垃圾回收表中能够存在的秒数
此值提供了一个安全措施,即使一个服务器进程在执行缓存的源文件时崩溃, 中.国.站长站
而且该源文件已经被修改,为旧版本分配的内存也不会被回收,直到达到此TTL值为止。设为零将禁用此特性。
pc.max_file_size = 1M
禁止大于此尺寸的文件被缓存。
apc.num_files_hint = 1000
Web服务器上可能被包含或被请求的不同源文件的大致数量(建议值为1024~4096)。
如果你不能确定,则设为 0 ;此设定主要用于拥有数千个源文件的站点。
apc.shm_segments = 1
为编译器缓冲区分配的共享内存块数量(建议值为1)。
如果APC耗尽了共享内存,并且已将apc.shm_size指令设为系统允许的最大值,你可以尝试增大此值。
apc.shm_size = 30
每个共享内存块的大小(以MB为单位,建议值为128~256)。
有些系统(包括大多数BSD变种)默认的共享内存块大小非常少。
apc.write_lock = On
是否启用写入锁。
重启apache服务器
然后在phpinfo中你就会看到apc的设置了。
至此,需要的yii的扩展已经配置完毕了,再刷新一下儿刚才的测试网页,就变成了:
image
php_yii_requirements_2
--------------------------------------------
好了,环境测试通过了,下面接着来测试demo吧。
把yii的demos目录和framework目录copy到你的web目录下,并且访问: xxx.xxx.com/demos/helloworld
在我这里会显示:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 137963997 bytes) in Unknown on line 0
不知道为什么,但是后来我在php.ini中将上面的apc设置都给注释掉,再重启apache2 就没问题了,会正确的显示出:
Hello World
那就先不用apc扩展吧。
现将你的yii的framework目录放到合适的位置,然后修改你的php.ini的include_path,重启apache server
这个时候修改你的helloworld/index.php
?[Copy to clipboard]View Code PHP
1
2
3
[php] view plaincopy
<span style="color: #b1b100;">require_once</span><span style="color: #009900;">(</span><a href="http://www.php.net/dirname"><span style="color: #990000;">dirname</span></a><span style="color: #009900;">(</span><span style="font-weight: bold; color: #000000;">__FILE__</span><span style="color: #009900;">)</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'/../../framework/yii.php'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">#修改成:</span>
<span style="color: #b1b100;">require_once</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'yii.php'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
这个时候儿如果还是可以正确的显示出:Hello World
则代表你配置成功了。
好了,配置好了,如何初步的运用yii来写程序。
请看这里:
英文的: www.yiiframework.com/doc/guide/
中文的: www.yiiframework.com/doc/guide/zh_cn/index
相关推荐
Yii框架是PHP开发中的一个高性能、基于组件的MVC(Model-View-Controller)框架,以其高效、灵活和丰富的特性而备受开发者喜爱。它旨在提高开发效率,提供强大的功能,同时保持代码简洁和易于维护。Yii的名字来源于...
3. 根据开发环境配置Web服务器,确保PHP版本符合Yii框架的最低要求(PHP 5.1.0及以上)。 4. 运行Yii框架的安装脚本,生成应用程序的基本结构。 5. 验证服务器是否满足Yii框架的最低要求,可以使用Yii提供的需求...
Yii框架是一款高效的PHP开发框架,特别适合用于构建大型企业级Web应用。它的名称"Yii"取自中文“易”字,寓意简洁、易用。Yii框架以性能优化为设计核心,提供了一系列现代化的Web开发工具和技术,使得开发者可以快速...
Yii框架是基于组件的高性能PHP...总之,Yii框架是PHP开发中的强大工具,其路由美化、自动化配置以及高效的性能优化策略,都为开发者带来了极大的便利。通过深入学习和使用Yii,开发者可以更高效地构建高质量的Web应用。
Yii框架是一款基于组件的高性能PHP框架,用于开发Web2.0应用。它的设计目标是高效、易用且可扩展。Yii这个名字来源于一个中文词汇“易”,意味着简单和便捷。本教程将带你逐步走进Yii的世界,了解其核心概念,以及...
**Yii框架中文手册** Yii(读作"易")是一个高性能、基于组件的PHP框架,专为开发Web 2.0应用而设计。这个中文手册是开发者了解和掌握Yii框架的重要资源,它提供了详尽的指导,旨在帮助初学者和经验丰富的程序员更...
Yii框架是PHP领域的一款高效、灵活的Web应用开发框架,其设计模式基于MVC(Model-View-Controller),使得开发者可以快速构建复杂而稳定的Web应用。让我们深入了解一下Yii框架的执行流程及其部分源码分析。 1. **...
在PHP开发中,Yii框架是一个高效且易于学习的开源Web应用框架,它提供了一系列强大的工具,使得开发者可以快速地构建高质量的Web应用。在数据库管理方面,Yii框架提供了丰富的功能,其中包括数据库备份模块。这个...
Yii框架是高效且灵活的PHP框架,专为Web 2.0应用开发而设计。自2008年1月薛强开始开发以来,Yii已经经历了多个版本迭代,从1.0.0到1.1.13,展现了其强大的生命力和适应性。与其他PHP框架如CakePHP、CodeIgniter、...
- **约定**:Yii框架采用了一些约定来减少配置的需求,例如模型类通常位于 `protected/models` 目录下。 #### 三、核心功能 **使用表单**:包括创建模型、创建动作、创建表单、收集表格输入等步骤,其中 **FORM...
3. **安装与配置**:安装Yii框架通常通过Composer进行,然后配置web服务器(如Apache或Nginx)以指向项目的`web`目录。在`config/main.php`配置文件中,你可以设置数据库连接、路由规则、全局变量等。 4. **路由与...
Yii框架是基于组件的高性能PHP框架,用于开发Web2.0应用。在Yii中,下拉框(Dropdown)常用于创建HTML表单中的选择菜单,它提供了用户友好的交互方式,让用户可以从预定义的选项中进行选择。在这个“yii示例-下拉框-...
1. **项目入口脚本**:在Yii框架中,项目的入口脚本通常命名为index.php,该脚本包含引导文件yii.php和配置文件main.php。index.php脚本会设置两个关键常量YII_DEBUG和YII_TRACE_LEVEL,分别用于控制调试模式的开启...
- **测试环境**: 完成以上步骤后,在浏览器中输入`http://localhost/requirements/index.php`,如果看到关于Yii框架兼容性的检测页面,表示环境配置成功。 **1.3 兼容性检查** - **YiiFramework必备条件**: - ...
最新版本的Yii框架在保持其原有优势的基础上,进一步提升了性能和开发效率。 Yii框架的核心特性包括: 1. **高性能**:Yii使用缓存机制、预编译模板和高效的查询构建器等技术,确保了应用的快速响应。它还支持各种...
Yii框架详解 Yii,全称为“Yet Another Inevitable Framework”,是PHP开发的一款高性能的、基于组件的Web应用开发框架。Yii的设计理念是简洁、高效和可扩展,它旨在提高开发速度并降低维护成本。本篇文章将深入...
Yii框架是基于组件的高性能PHP框架,用于开发Web2.0应用。Yii 2.0是该框架的最新版本,经过全面重构,提供了更强大的功能和更好的性能。它遵循MVC(模型-视图-控制器)设计模式,使得开发者能够构建可维护、高效的...
Yii框架是一款高效的、基于组件的PHP开发框架,用于构建高性能的Web应用。它以其卓越的性能、丰富的特性、易于学习的API以及强大的社区支持而受到开发者们的青睐。本教程将深入探讨Yii框架的核心概念和使用方法,...
Yii 2.0 框架是一款高效、可扩展且易于学习的PHP框架,专为构建高性能的Web应用而设计。Yii,发音为"易",代表简单和优雅,是Yee或Yes It Is的英文缩写。这个框架遵循模型-视图-控制器(MVC)设计模式,提供了一系列...