有一篇是插件形式的,这个是我在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目录外了,祝大家学校愉快.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 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的设计模式综述