`

php ci框架的使用问题

 
阅读更多

1.  多级目录路由

application\core\MY_Router.php

重写_validate_request方法
/**
* Validates the supplied segments. Attempts to determine the path to
* the controller.
*
* @access private
* @param array
* @return array
*/

function _validate_request($segments)
{


if (count($segments) == 0)
{
return $segments;
}
// Does the requested controller exist in the root folder?
if (file_exists(APPPATH.'controllers/'.ucfirst($segments[0]).'.php'))
{
return $segments;
}

// Is the controller in a sub-folder?
if (is_dir(APPPATH.'controllers/'.$segments[0]))
{
$temp = array('dir' => array(), 'path' => APPPATH.'controllers/');

foreach($segments as $k => $v)
{
$temp['path'] .= $v.'/';

if(is_dir($temp['path']))
{
$temp['dir'][] = $v;
unset($segments[$k]);
}
}

$this->set_directory(implode('/', $temp['dir']));
$segments = array_values($segments);
unset($temp);

if (count($segments) > 0)
{
// Does the requested controller exist in the sub-folder?
if ( ! file_exists(APPPATH.'controllers/'.$this->fetch_directory().ucfirst($segments[0]).'.php'))
{
if ( ! empty($this->routes['404_override']))
{
$x = explode('/', $this->routes['404_override']);

$this->set_directory('');
$this->set_class($x[0]);
$this->set_method(isset($x[1]) ? $x[1] : 'index');

return $x;
}
else
{
show_404($this->fetch_directory().$segments[0]);
}
}
}
else
{
// Is the method being specified in the route?
if (strpos($this->default_controller, '/') !== FALSE)
{
$x = explode('/', $this->default_controller);

$this->set_class($x[0]);
$this->set_method($x[1]);
}
else
{
$this->set_class($this->default_controller);
$this->set_method('index');
}

// Does the default controller exist in the sub-folder?
if ( ! file_exists(APPPATH.'controllers/'.$this->fetch_directory().$this->default_controller.'.php'))
{
$this->directory = '';
return array();
}

}

return $segments;
}


// If we've gotten this far it means that the URI does not correlate to a valid
// controller class. We will now see if there is an override
if ( ! empty($this->routes['404_override']))
{
$x = explode('/', $this->routes['404_override']);

$this->set_class($x[0]);
$this->set_method(isset($x[1]) ? $x[1] : 'index');

return $x;
}


// Nothing else to do at this point but show a 404
show_404($segments[0]);
}

 

 2.数据库的读写分离配置 

      1.将DB.php 在core下面重写

      https://github.com/lvren007/ci3db/blob/master/DB.php

 

分享到:
评论

相关推荐

    php ci 框架手册

    在提供的`user_guide`文件中,通常包含了关于CI框架的详细文档,包括安装、配置、核心类库介绍、数据库操作、错误处理、辅助函数、视图和控制器的使用方法,以及如何扩展CI框架等内容。新手可以按照这份指南逐步学习...

    CI框架中文语言包

    CI框架,全称为CodeIgniter,是一款广泛使用的PHP框架,以简洁、高效的特性著称。它为开发者提供了丰富的工具和类库,简化了Web应用程序的开发过程。在本话题中,我们将深入探讨CI框架的中文语言包及其在表单验证中...

    基于PHP + CI框架 + AdminLite 权限管理系统.zip

    总结来说,"基于PHP + CI框架 + AdminLite 权限管理系统"是一个综合性的Web开发项目,涉及PHP编程、数据库管理、MVC架构应用、前端界面设计和权限控制等多个重要知识点。对于学习和实践Web开发技术的学生而言,这是...

    CI框架学习概要总结

    总结来说,CI框架学习的关键点包括理解PHP环境配置,掌握控制器、视图和模型的使用,熟练运用框架的内置工具如表单验证、分页、文件上传等,并能够根据需求进行自定义扩展。通过这些视频教程的学习,开发者将具备...

    CI框架快速开发平PHP应用

    在CI框架中,开发者可以通过使用`anchor`函数自动生成链接,这一功能尤其适用于动态生成的链接。当需要修改链接结构时,只需在配置文件中进行调整,即可全局生效,无需手动修改多处代码,极大地简化了维护工作。 ##...

    php的json和数组相互转换,以及ci框架的一些笔记

    php的json和数组相互转换,ci框架遇到的一些问题总结,以及图片上传的一些功能

    基于PHP的CI框架商城实战

    2. **熟悉CI框架**:掌握CI的控制器、模型、视图、库的使用方法。 3. **电商功能实践**:了解电商系统的基本功能及其实现方式。 4. **提升PHP能力**:加深对PHP语法和面向对象编程的理解。 5. **增强项目经验**:...

    php CI学习框架

    #### 一、CI框架概述 - **定义**:CodeIgniter (简称CI) 是一个简洁而强大的PHP Web开发框架,它轻量级且具备丰富的类库资源,支持MVC(Model-View-Controller)设计模式。 - **特性**: - **小巧**:框架体积小,...

    PHP_CI框架分页使用

    以下是关于CI框架分页使用的详细解释: 1. **加载必要的库和助手** 在`Pagefile`控制器中,首先通过`__construct`构造函数加载了`pagination`库、`model`以及`url`助手。`pagination`库是实现分页的核心,`model`...

    CI框架2016.08.31

    - **性能优异**:CI框架通过最小化核心库的大小和使用高效的查询缓存来提高性能。 - **安全防护**:内置了防止SQL注入、跨站脚本攻击(XSS)等安全措施。 - **模板引擎**:支持自定义模板解析器,方便创建动态...

    后盾网 CI框架 马震宇 模板

    **CI框架:构建高效Web应用的关键** CI,全称CodeIgniter,是一个基于MVC...通过这个课程,你将不仅理解CI框架的基本原理,还能具备使用CI框架开发实际项目的能力。结合实践,逐步提升你的PHP编程技能和Web开发水平。

    ci框架详解

    提供的"ci框架 2.0中文手册.chm"是CI框架2.0版本的官方中文文档,涵盖了框架的所有组件和功能,包括安装、配置、数据库操作、视图和模板、表单验证、错误处理等,是学习和使用CI框架的重要参考资料。 总结,CI框架...

    CI框架的CMS系统

    **CI框架的CMS系统详解** CI(CodeIgniter)框架是一种轻量级的PHP框架,以其高效、简单易用的特点深受开发者的喜爱。在构建内容管理系统(CMS)时,CI框架提供了一种强大的工具,帮助开发者快速搭建和维护网站。本...

    PHP CI框架的安装配置和简单使用

    **PHP CI框架(CodeIgniter)安装配置及简单使用** CodeIgniter,简称CI,是一款轻量级的PHP MVC框架,以其高效的性能和简洁的API而受到开发者的喜爱。本篇将详细介绍CI框架的安装配置过程,以及如何进行基本的使用...

    兄弟连最新php视频教程CI框架(19集)

    教程名称:兄弟连最新php视频教程CI框架(19集)课程目录:【】兄弟连php视频教程CI框架-大纲【】兄弟连php视频教程CI框架01~04【】兄弟连php视频教程CI框架05~08【】兄弟连php视频教程CI框架09~12【】兄弟连php视频...

    PHP开发教程之CI框架. CodeIgniter

    PHP开发教程之CI框架. CodeIgniter

    ci 框架最新版

    CodeIgniter是一个轻量级的PHP Web开发框架,它的最新版本是"ci框架最新版"。这个框架以其高效性能、小巧简洁的特点深受开发者喜爱。在本文中,我们将深入探讨CodeIgniter 3.0.1的主要特点、核心组件以及如何进行...

    CI框架即点及该功能

    ### CI框架即点即该功能知识点详解 #### 一、CI框架简介 CodeIgniter(简称CI)是一款轻量级的PHP应用开发框架,它旨在简化开发者创建Web应用程序的过程。CI框架通过提供一系列丰富的库、辅助函数以及简洁的接口和...

    ci框架规范 参考

    CI框架,全称为CodeIgniter,是一款轻量级的PHP框架,它提供了高效且易于使用的工具,用于构建高质量的Web应用程序。本规范主要关注在使用CI框架时的编码风格和组织结构,旨在提升团队协作效率,减少后期维护成本。 ...

Global site tag (gtag.js) - Google Analytics