没想到啊

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  6 随笔 :: 379 文章 :: 97 评论 :: 24万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
复制代码
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   没想到啊  阅读(484)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示