logo

Shapez Theme

· Home Playground About

22


NOVEMBER

今天用到了一个新的小功能,是关于headLink和headScript的,对于新手来说需要学习的东西很多啊。经查资料找到用法,这里记录下:

headLink用于对css文件的引用,而headScript用于js脚本文件的引用。可以直接在模板中使用,代码如下:

/application/views/layouts/layout.phtml  
    headLink()->appendStylesheet($this->baseUrl() . '/css/global.css')  
        ->headLink()->prependStylesheet($this->baseUrl() . '/css/resets.css')  
    ?>  
headLink() ?>

也可以在代码中添加,比如这里在Bootstrap.php中进行了添加:

/application/Bootstrap.php (function not complete)  
 function \_initView()  
 {  
  $view->headLink()->prependStylesheet('css/resets.css')  
   ->headLink()->appendStylesheet('css/global.css')  
   ->headLink()->appendStylesheet('css/forms.css')  
   ->headLink()->appendStylesheet('css/pages.css');  
 }
 headScript使用方法一致,不过方法名改了,代码如下:
/application/Bootstrap.php (function not complete)  
 function \_initView()  
 {  
  $view->headScript()->prependFile('js/jquery-1.3.2.min.js')  
   ->headScript()->appendFile('js/jquery-ui-1.7.min.js')  
   ->headScript()->appendFile('js/jquery.easing.1.3.js')  
   ->headScript()->appendFile('js/docready.js');   
 }

我们举的例子都是在Bootstrap.php中使用的例子,再举个控制器中使用的例子:

public function init ()  
{  
	$this->\_helper->layout()->setLayout("default");  
	$this->view->headLink()->appendStylesheet('/public/css/commshot.css');  
}

这个init是控制器的初始化方法。

logo

Shapez Theme

· Home Playground About

23


SEPTEMBER

最近工作比较乱,不想多说。研究一周多的php工作要暂停,不知道到时候恢复的时候是不是能想的起来。先记录下来一部分,做个备忘,免得将来又从头开始。

环境配置不记录了,前面有提到。zend framework就是一组类库,下载下来放在站点根目录的library目录中即可,index.php做程序入口,所有访问经该入口路由到具体的处理。

一般开发步骤

根据当前的开发方式,实际开发时,每创建一个页面,有以下几个步骤:

1、创建表对象

在application目录的models目录下,创建表的表对象,其实很简单,通过zend studio可以直接创建,代码如下:

<?php
require_once ‘Zend/Db/Table/Abstract.php’;
class feed extends Zend_Db_Table_Abstract
{
    /**
     * The default table name
     */
    protected $_name = ‘feed’;
}

这是一个简单的feed对象,对应数据库中的feed表,有了它以后,可以直接用面向对象的方式访问该表,而不需要编写sql语句。当然,也可以在里面封装些数据库的常用操作方法。数据操作的方法记录在后面。

2、在application.ini中创建路由配置

比如

routes.register.type = “Zend_Controller_Router_Route_Static”
routes.register.route = “user/register”
routes.register.defaults.controller = “register”
routes.register.defaults.action = “index”

这是一段注册页面的配置,注册类型是静态地址,地址为user/register,对应的控制器是register,控制器中的action是index。

再看另一段配置:

routes.shot.route = “project/shot/list/:pid”
routes.shot.defaults.controller = “shot”
routes.shot.defaults.action = “index”
routes.shot.map.1=“pid”

这里pid是参数,意为project/shot/list/xx 这样一个路径xx就是pid参数,可以用request方式获取到值。

3、编写控制器

在我们的方法中,所有程序都放在了modules文件夹中,在modules/default/controller中创建控制器,比如我们路由中有个register的控制器,其名称就是:registerContrlller.php。

看下面这个代码:

<?php
require_once ‘Zend/Controller/Action.php’;
class shotController extends Zend_Controller_Action

{
    public function init ()
    {
        $this->_helper->layout()->setLayout(“default”);
    }

   public function indexAction ()

   {…

   }

}

这个控制器是针对前面第二段路由配置的,类名是shotController,继承自

Custom_Controllers_AuthController(这个zendstudio会自动生成,不用担心记不住),indexAction就是该路由的触发的动作,一个控制器中可以有多个action。init方法是初始化方法,比如某控制器中有多个action,则每个action执行前都会执行init方法。

4、制作模板

所谓模板,就是以phtml为后缀的一个html块,不过其中可以写php代码,示例:


New Shot


<?php
echo $this->form;

?>




Shot List






<?php
if($this->shots!=null){
foreach ($this->shots as $u){
    ?>
shotbudget
<?php echo $u->name ?><?php echo $u->budget ?>id?>‘>edit

Shapez Theme

· Home Playground About

09


SEPTEMBER

确认的php和apache环境配置:

1.请PHPer确认你的PHP版本是否在5.2.0以上..如果不是的话..请更新到5.2.0,否则.Zend Framework 好像用不了。

PHP源码最新版下载地址为:http://www.php.net/downloads.php.

2.你的PHP环境配置好了之后,请打开php.ini文件,确认PDO扩展是否打开:

;extension=php_mysql.dll
;extension=php_pdo.dll
;extension=php_pdo_mysql.dll
修改
extension=php_mysql.dll
extension=php_pdo.dll
extension=php_pdo_mysql.dll 去掉分号
还有:
; Windows: “path1;path2”
include_path = “.;c:phpincludes;e:wwwrootzendflibrary” (zend framework的libary支持)

3.打开APACHE文件夹里面的httpd.conf文件.配置mod_rewrite.so的支持

#LoadModule rewrite_module modules/mod_rewrite.so
修改:LoadModule rewrite_module modules/mod_rewrite.so (去掉#号)才支持Zend framework

4. 查找到httpd.conf文件,如果AllowOverride为None的话..请一定把None都改成all.这样你写.htaccess这样的文件才会起到作用..

将所有的:AllowOverride None替换AllowOverride all 支持.htaccess文件

5.重新启动你的APACHE服务器.这样我们的PHP环境就可以运用Zend Framewrok了.

 

安装zend tool

下载zend framework的zip文件,解压,配置环境变量的path路径:

在path变量的结尾处增加:

;D:Program FilesZendZendFrameworkbin

该路径是解压目录中的bin目录的路径,注意前面的;不用丢掉

测试安装是否成功:

在命令行中输入:

zf show version

这句话是显示版本,如果顺利,会输出版本,否则会报错。我这里显示:

zend framework version:1.11.10

 

创建项目

可以使用zendtool创建项目,命令行:

通过命令行进入站点根目录(一般是htdocs目录),键入命令:

zf create project zf_proj

然后回车,会创建一个zf_proj的目录,里面自动创建一些必要的文件和文件夹。目录结构如下:

2011-09-09 16-39-23

如果没有安装phpuint这个单元测试工具的话,会有提示,不过没关系,不用理它。

当然,你也可以把下载的目录拷贝到自建的目录,刚才那个命令并未做任何配置的工作。

一般来说,图片、js和css文件要防止public目录下,而library文件夹里面要放下在到的zendframework的文件,就是把压缩包里的library文件夹里的内容(其实只有一个zend文件夹)拷贝过来就可以了。

好了,现在我们测试下,打开以下地址:

http://localhost/zf_proj/public/

就可以看到欢迎页面,这里就不上图了。