View Code
有一篇是插件形式的,这个是我在doctrine官网上发现的不是插件形式的。我已经试过了。
首先就是下载了,到官网上doctrine-project.org不多写了。我这边解压到codeigniter的system/database下,这时该目录下多出一个文件夹doctrine。
其次编辑system/application下的database.php文件
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*
| -------------------------------------------------------------------
| DATABASE CONNECTIVITY SETTINGS
| -------------------------------------------------------------------
| This file will contain the settings needed to access your database.
|
| For complete instructions please consult the "Database Connection"
| page of the User Guide.
|
| -------------------------------------------------------------------
| EXPLANATION OF VARIABLES
| -------------------------------------------------------------------
|
| ['hostname'] The hostname of your database server.
| ['username'] The username used to connect to the database
| ['password'] The password used to connect to the database
| ['database'] The name of the database you want to connect to
| ['dbdriver'] The database type. ie: mysql. Currently supported:
mysql, mysqli, postgre, odbc, mssql, sqlite, oci8
| ['dbprefix'] You can add an optional prefix, which will be added
| to the table name when using the Active Record class
| ['pconnect'] TRUE/FALSE - Whether to use a persistent connection
| ['db_debug'] TRUE/FALSE - Whether database errors should be displayed.
| ['cache_on'] TRUE/FALSE - Enables/disables query caching
| ['cachedir'] The path to the folder where cache files should be stored
| ['char_set'] The character set used in communicating with the database
| ['dbcollat'] The character collation used in communicating with the database
|
| The $active_group variable lets you choose which connection group to
| make active. By default there is only one group (the "default" group).
|
| The $active_record variables lets you determine whether or not to load
| the active record class
*/
$active_group = "default";
$active_record = TRUE;
$db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "";
$db['default']['database'] = "mydoctrine";
$db['default']['dbdriver'] = "mysql";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";
// Create dsn from the info above
$db['default']['dsn'] = $db['default']['dbdriver'] .
'://' . $db['default']['username'] .
':' . $db['default']['password'].
'@' . $db['default']['hostname'] .
'/' . $db['default']['database'];
// Require Doctrine.php
require_once(realpath(dirname(__FILE__) . '/../..') . DIRECTORY_SEPARATOR . 'system' . DIRECTORY_SEPARATOR . 'database/doctrine/Doctrine.php');
// Set the autoloader
spl_autoload_register(array('Doctrine', 'autoload'));
// Load the Doctrine connection
Doctrine_Manager::connection($db['default']['dsn'], 'default');
// Load the models for the autoloader
Doctrine_Core::loadModels(realpath(dirname(__FILE__) . '/..' ) . DIRECTORY_SEPARATOR . 'models');
// Set the model loading to conservative/lazy loading
Doctrine_Manager::getInstance()->setAttribute(Doctrine_Core::ATTR_MODEL_LOADING, Doctrine_Core::MODEL_LOADING_CONSERVATIVE);
Doctrine_Manager::getInstance()->setAttribute(Doctrine_Core::ATTR_HYDRATE_OVERWRITE, false);
Doctrine_Manager::getInstance()->setAttribute(Doctrine_Core::ATTR_QUOTE_IDENTIFIER, true);
/* End of file database.php */
/* Location: ./system/application/config/database.php */
在application中添加两个文件,doctrine和doctrine.php
doctrine:
#!/usr/bin/env php
<?php
define('BASEPATH','.');
chdir(dirname(__FILE__));
include('doctrine.php');
doctrine.php
<?php
require_once('config/database.php');
//Configure Doctrine Cli
//Normally these are arguments to the cli tasks but if they are set here the arguments will be auto-filled
$config=array('data fixtures path'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'/fixtures',
'models_path'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'/models',
'migrations_path'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'/sql',
'yaml_schema_path'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'/schema');
$cli=new Doctrine_Cli($config);
$cli->run($_SERVER['argv']);
测试,在命令行中进入到doctrine文件所在的,我的步骤是e:,cd xampp/htdocs/mydoctrine/application.然后输入php doctrine如果显示帮助信息就成功了。大家的application目录可能跟我有不同,我把application目录提到system目录外了,祝大家学校愉快.