一个Windows XP Xampp Zend Framework 新手教程修订版

转载 http://php.bbpresschina.com/archives/61.html

一个Windows XP Xampp Zend Framework 新手教程修订版

一个windows XP Xampp Zend Framework 新手教程修订版
预热教程
解压缩到c:\ZendFramework
重命名文件夹为c:Zend
将以下的路径添加到环境变量Path中:
;C:\Zend\bin;C:\Zend\library;C:\xampp\php
取消C:xamppapacheconfhttpd.conf 中的下一行的注释
Include conf/extra/httpd-vhosts.conf
在文件 C:xamppapacheconfextrahttpd-vhosts.conf 中添加:
<VirtualHost *:80>
DocumentRoot “c:zsquickstartpublic”
ServerName quickstart.local
SetEnv APPLICATION_ENV “development”
<Directory c:zsquickstartpublic>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot C:xampphtdocs
ServerName localhost
</VirtualHost>
在C:\WINDOWS\system32\drivers\etc\hosts中添加:
127.0.0.1 quickstart.local
到了此步骤就意味着你可以通过http://quickstart.local来访问教程文件了
取消C:\xampp\apache\conf\httpd.conf中的如下命令的注释
LoadModule rewrite_module modules/mod_rewrite.so
在C:\xampp\php\php.ini中添加;c:zendlibrary;到include_path 即:
include_path = “.;C:\xampp\php\pear;c:\Zend\library”
在C:xamppphpphp.ini中取消如下两行的注释:
extension=php_pdo.dll
extension=php_pdo_sqlite.dll
重启服务器
开始教程
http://framework.zend.com/manual/en/learning.quickstart.create-project.html
准备执行命令行工具:
开始,运行,cmd,cd
mkdir zs
cd zs
zf create project quickstart
本部分不在教程中:添加一个重写规则到public/.htaccess 中,使得该文件看起来像是如下:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ – [NC,L]
RewriteRule ^.*$ index.php [NC,L]
RewriteRule !.(js|ico|txt|gif|jpg|png|css)$ index.php
预览欢迎页面:
http://quickstart.local
继续教程
http://framework.zend.com/manual/en/learning.quickstart.create-layout.html
返回到命令行窗口的C:zsquickstart目录下:
执行  zf enable layout
(注意 因为xampp中默认附带了一个zend所以
一般会默认使用C:xamppphpPEAR目录下的zend文件夹
所以在使用该命令前请先将该目录下的zend文件夹改名为其他名字
然后执行zf show version 看下跟原来改名前的结果是否一样)
编辑文件C:zsquickstartapplicationBootStrap.php.添加以下方法到Bootstrap类中:
protected function _initDoctype()
{
$this->bootstrap(‘view’);
$view = $this->getResource(‘view’);
$view->doctype(‘XHTML1_STRICT’);
}
在文件C:zsquickstartapplicationconfigsapplication.ini的production section中添加:
resources.view[] =
用以下文字覆盖C:zsquickstartapplicationlayoutsscriptslayout.phtml中的内容:
<!– application/layouts/scripts/layout.phtml –>
<?php echo $this->doctype() ?>
<html xmlns=”http://www.worg/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf- />
<title>Zend Framework Quickstart Application</title>
<?php echo $this->headLink()->appendStylesheet(‘/css/global.css’) ?>
</head>
<body>
<div id=”header” style=”background-color: #EEEEEE; height: x;”>
<div id=”header-logo” style=”float: left”>
<b>ZF Quickstart Application</b>
</div>
<div id=”header-navigation” style=”float: right”>
<a href=”<?php echo $this->url(
array(‘controller’=>’guestbook’),
‘default’,
true) ?>”>Guestbook</a>
</div>
</div>
<?php echo $this->layout()->content ?>
</body>
</html>
浏览新的布局,注意到留言簿尚未挂接:
http://quickstart.local
继续教程:
http://framework.zend.com/manual/en/learning.quickstart.create-model.html
教程命令在wondows环境下不会工作。教程要求你在cmd命令行界面下的c:zsquickstart目录下运行:
zf configure db-adapter “adapter=PDO_SQLITE&dbname=APPLICATION_PATH ‘/../data/db/guestbook.db’” production
教程同样也会让你将位于[production]部分中运行如下三个命令:
zf configure db-adapter “adapter=PDO_SQLITE&dbname=APPLICATION_PATH ”/../data/db/guestbook.db”" production
zf configure db-adapter “adapter=PDO_SQLITE&dbname=APPLICATION_PATH ”/../data/db/guestbook-testing.db”" testing
zf configure db-adapter “adapter=PDO_SQLITE&dbname=APPLICATION_PATH ”/../data/db/guestbook-dev.db”" development
本部分在教程中及项目中均为提到,只是用于你想要使用mysql而不是sqlite的情况下:
在文件c:/xampp/php/php.ini中,取消如下命令的注释:
extension=php_pdo_mysql.dll
在cmd界面下的c:/zs/quickstart文件目录中,运行如下命令:(注意更改你的数据库名称,主机,用户名及密码)
zf configure db-adapter “adapter=PDO_MYSQL&dbname=mydb&host=localhost&username=root&password production
重启 Apache
通过图形界面登录localhost/phpmyadmin 并且建立数据库命名为mydb
用cmd命令行界面在目录c:zsquickstart创立db文件夹(对于mysql用户来说 你不必做这一步骤)
mkdir datadb
attrib -R data
在这一步骤中,教程将会让你创建scripts/schema.sqlite.sql和其他数据库文件。教程通过建立datadb教会你
,同时他也应该提到scripts文件夹也需要建立,在C:zsquickstart:目录下:
mkdir scripts
建立文件c:/zs/quickstart/scripts/schema.sqlite.sql(对于mysql用户应该命名文件为schema.mysql.sql)
– scripts/schema.sqlite.sql
– You will need load your database schema with this SQL.
CREATE TABLE guestbook (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
email VARCHAR(32) NOT NULL DEFAULT ‘noemail@test.com’,
comment TEXT NULL,
created DATETIME NOT NULL
);
CREATE INDEX “id” ON “guestbook” (“id”);
建立文件c:/zs/quickstart/scripts/data.sqlite.sql (对于mysql用户应该命名文件为data.mysql.sql)
– scripts/data.sqlite.sql
– You can begin populating the database with the following SQL statements.
INSERT INTO guestbook (email, comment, created) VALUES
(‘ralph.schindler@zend.com’,'Hello! Hope you enjoy this sample zf application!’,DATETIME(‘NOW’));
INSERT INTO guestbook (email, comment, created) VALUES(‘foo@bar.com’,'Baz baz baz, baz baz Baz baz baz – baz baz baz.’,DATETIME(‘NOW’));
建立文件scripts/load.sqlite.php(对于mysql用户而言,应该是命名为load.mysql.php.并且应该将内容中所有的
script引用从sqlite改为mysql)。另外,该教程中没有包括<?php 和 ?>.自己添加这些。
<?php
// scripts/load.sqlite.php
/**
* Script for creating and loading database
*/
// Initialize the application path and autoloading
defined(‘APPLICATION_PATH’)
|| define(‘APPLICATION_PATH’, realpath(dirname(__FILE__) . ‘/../application’));
set_include_path(implode(PATH_SEPARATOR, array(
APPLICATION_PATH . ‘/../library’,
get_include_path(),
)));
require_once ‘Zend/Loader/Autoloader.php’;
Zend_Loader_Autoloader::getInstance();
// Define some CLI options
$getopt = new Zend_Console_Getopt(array(
‘withdata|w’ => ‘Load database with sample data’,
‘env|e-s’    => ‘Application environment for which to create database (defaults to development)’,
‘help|h’     => ‘Help — usage message’,
));
try {
$getopt->parse();
} catch (Zend_Console_Getopt_Exception $e) {
// Bad options passed: report usage
echo $e->getUsageMessage();
return false;
}
// If help requested, report usage message
if ($getopt->getOption(‘h’)) {
echo $getopt->getUsageMessage();
return true;
}
// Initialize values based on presence or absence of CLI options
$withData = $getopt->getOption(‘w’);
$env      = $getopt->getOption(‘e’);
defined(‘APPLICATION_ENV’)
|| define(‘APPLICATION_ENV’, (null === $env) ? ‘development’ : $env);
// Initialize Zend_Application
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . ‘/configs/application.ini’
);
// Initialize and retrieve DB resource
$bootstrap = $application->getBootstrap();
$bootstrap->bootstrap(‘db’);
$dbAdapter = $bootstrap->getResource(‘db’);
// let the user know whats going on (we are actually creating a
// database here)
if (‘testing’ != APPLICATION_ENV) {
echo ‘Writing Database Guestbook in (control-c to cancel): ‘ . PHP_EOL;
for ($x = 5; $x > 0; $x–) {
echo $x . “r”; sleep(1);
}
}
// Check to see if we have a database file already
$options = $bootstrap->getOption(‘resources’);
$dbFile  = $options['db']['params']['dbname'];
if (file_exists($dbFile)) {
unlink($dbFile);
}
// this block executes the actual statements that were loaded from
// the schema file.
try {
$schemaSql = file_get_contents(dirname(__FILE__) . ‘/schema.sqlite.sql’);
// use the connection directly to load sql in batches
$dbAdapter->getConnection()->exec($schemaSql);
chmod($dbFile, 0666);
if (‘testing’ != APPLICATION_ENV) {
echo PHP_EOL;
echo ‘Database Created’;
echo PHP_EOL;
}
if ($withData) {
$dataSql = file_get_contents(dirname(__FILE__) . ‘/data.sqlite.sql’);
// use the connection directly to load sql in batches
$dbAdapter->getConnection()->exec($dataSql);
if (‘testing’ != APPLICATION_ENV) {
echo ‘Data Loaded.’;
echo PHP_EOL;
}
}
} catch (Exception $e) {
echo ‘AN ERROR HAS OCCURED:’ . PHP_EOL;
echo $e->getMessage() . PHP_EOL;
return false;
}
// generally speaking, this script will be run from the command line
return true;
?>
在cmd命令行界面中的 c:zsquickstart目录下,执行以下命令:
php scripts/load.sqlite.php –withdata
在cmd命令行界面中的 c:zsquickstart目录下,执行以下命令:
zf create db-table Guestbook guestbook
建立文件:application/models/GuestbookMapper.php,内容如下:
<?php
// application/models/GuestbookMapper.php
class Application_Model_GuestbookMapper
{
public function save($model);
public function find($id, $model);
public function fetchAll();
}
?>
在cmd命令行界面中的 c:zsquickstart目录下,执行以下命令
zf create model GuestbookMapper
更多请参看

一个Windows XP Xampp Zend Framework 新手教程修订版(后续)



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值