没想到啊

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
View Code
有一篇是插件形式的,这个是我在doctrine官网上发现的不是插件形式的。我已经试过了。

首先就是下载了,到官网上doctrine-project.org不多写了。我这边解压到codeigniter的system/database下,这时该目录下多出一个文件夹doctrine。

其次编辑system/application下的database.php文件



<?php&nbsp; 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

| -------------------------------------------------------------------

|

|&nbsp;['hostname'] The hostname of your database server.

|&nbsp;['username'] The username used to connect to the database

|&nbsp;['password'] The password used to connect to the database

|&nbsp;['database'] The name of the database you want to connect to

|&nbsp;['dbdriver'] The database type. ie: mysql.&nbsp; Currently supported:

&nbsp;&nbsp;&nbsp;&nbsp; mysql, mysqli, postgre, odbc, mssql, sqlite, oci8

|&nbsp;['dbprefix'] You can add an optional prefix, which will be added

|&nbsp;&nbsp;&nbsp;&nbsp; to the table name when using the&nbsp; Active Record class

|&nbsp;['pconnect'] TRUE/FALSE - Whether to use a persistent connection

|&nbsp;['db_debug'] TRUE/FALSE - Whether database errors should be displayed.

|&nbsp;['cache_on'] TRUE/FALSE - Enables/disables query caching

|&nbsp;['cachedir'] The path to the folder where cache files should be stored

|&nbsp;['char_set'] The character set used in communicating with the database

|&nbsp;['dbcollat'] The character collation used in communicating with the database

|

| The $active_group variable lets you choose which connection group to

| make active.&nbsp; 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'] .

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '://' . $db['default']['username'] .

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ':' . $db['default']['password'].

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '@' . $db['default']['hostname'] .

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '/' . $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目录外了,祝大家学校愉快.
posted on 2012-01-18 17:36  没想到啊  阅读(483)  评论(0编辑  收藏  举报