Yii框架探索(一)

前言

在把Centos安装好了之后,我又开始捣鼓起了lamp。
毕竟在学校的组织里,是用php的yii框架作为网页后台的
于是自个也就打算顺便弄上yii。php,mysql的安装就不说太多了,这里只说一点吧:php安装时的configure:
./configure --prefix=/usr/local/php --with-mysql --with-apxs2 --with-libxml-dir=/usr/lib64/ --enable-mbstring --with-pdo-mysql --with-mcrypt
yii的数据库功能是需要PHP 的 PDO 扩展和相应的驱动扩展,所以想要在yii中使用mysql,编译php时需要带上--with-pdo-mysql选项,当然--with-mysql选项也是必要的,另外一点就是如果你有使用phpMyAdmin的话,必须带上--enable-mbstring跟--with-mscrypt选项

主要内容

开始使用Yii

Yii使用非常的简便,只需要将Yii的压缩包解压就可以立即使用。这里我把它解压到了/var/www/html下,当然任意目录都是可以的。解压后,我把它命名为了yii。
目录结构如下:
var
|-www
 |-yii
  |-demos
  |-framework
  |-requirements
  |CHANGELOG
  ...

创建第一个应用

以下步骤都是以我的配置环境书写的
1.进入终端;
2.工作目录移至/var/www/html/yii下
3.键入/usr/local/php/bin/php framework/yiic /var/www/html/test后回车Yii会自动生成第一个应用
1.如果觉得/usr/local/php/bin/php这么打麻烦可以将/usr/local/php/bin加到环境变量中
2./var/ww/html/test不是唯一写法
4.开启httpd服务跟mysqld服务,在浏览器中键入127.0.0.1/test或者localhost/test或者0.0.0.0/test
(以上视apache的设定与环境的不同)
成功的话,可以看到My Web Application字样.然后是下一步

配置Yii

Yii的配置文件位于应用目录下的protected/config
main.php配置了主要的东西
这里我修改
		'db'=>array(
				'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive.db',
				),
				// uncomment the following to use a MySQL database
				/*
				'db'=>array(
				//   "class"=> "CDbConnection",
				'connectionString' => 'mysql:host=localhost;dbname=',
				'emulatePrepare' => true,
				'username' => '',
				'password' => '',
				'charset' => 'utf8',
				),*/
为了
		/*'db'=>array(
					'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive.db',
					),*/
					// uncomment the following to use a MySQL database

					'db'=>array(
					//   "class"=> "CDbConnection",
					'connectionString' => 'mysql:host=localhost;dbname=test',
					'emulatePrepare' => true,
					'username' => 'root',
					'password' => '123456',
					'charset' => 'utf8',
					),
并且使用测试实例中的/protected/data/schema.mysql.sql导入数据库中(使用的database为test)
下一步,我们使用yiic生成CRUD操作代码。

CRUD操作

这一步我弄了挺久,出现各种问题,比如Permission denied之类的,所以我先分享我自己的配置。(也不知道对不对因为是意外弄好的)
一个就是/etc/my.ini。注意我加了一句bind-address=127.0.0.1。
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
bind-address=127.0.0.1
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
另一点,就是上面我配置Yii的时候给的host名是localhost。
接下就是php.ini的配置(我的是位于/usr/local/php/lib/,要查看自己php.ini的位置,最简单的就是调用phpinfo()函数)
[Pdo_mysql]
; If mysqlnd is used: Number of cache slots for the internal result set cache
; http://php.net/pdo_mysql.cache_size
pdo_mysql.cache_size = 2000

; Default socket name for local MySQL connects.  If empty, uses the built-in
; MySQL defaults.
; http://php.net/pdo_mysql.default-socket
pdo_mysql.default_socket="/var/lib/mysql/mysql.sock"
                        
这里将pdo_mysql.default_socket指向了my.ini的socket
同样的,我也将下面的mysql.default_socket与mysqli.default_socket指向了"/var/lib/mysql/mysql.sock",同时设置了mysql.default_host为127.0.0.1
另外如果你跟我一样使用phpMyAdmin管理数据库,需要设置config.inc.php的以下设置:
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
/* Select mysql if your server does not have mysqli */
$cfg['Servers'][$i]['extension'] = 'mysql';
好了,整好了各种设置,我们回到主题上来,依旧是进入终端,切换到应用目录,键入/usr/local/php/bin/php protected/yiic shell
然后进入了Yii的shell了!
接下来键入model User tbl_user以根据tbl_user生成User模型类(与Django恰好相反)。
然后,键入crud User生成create, read, update 和 delete的控制类与视图类。
最后就可以使用127.0.0.1/test/index.php?r=user来查看结果(但愿跟随步骤的人没有出现什么错误)

总结

使用框架确实是使网页开发快捷有效的一种方式,在生成代码方面Yii做的挺好,使用的也是MVC开发模式,在有过MVC开发模式的经验后,上手特别快。
但同时,Yii做了很大的限制,比如控制文件的命名方式,控制器类的命名方式,这些我觉得遵从一定的标准固然是好,只是每次都写很不爽的,不能自由命名,另一点就是,感觉它这样做也牺牲了一些效率。
顺带说一句PHP的语法感觉上还是复杂了一点array("a"=>array("b"=>1),"r"=>2)这样的东西看着真的挺难受的。。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值