首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

CI框架附属类用法分析

分享给大家供大家参考,具体如下: 有些时候,你可能想在你的控制器之外新建一些类,但同时又希望 这些类还能访问 CodeIgniter 的资源 任何在你的控制器方法初始化的类都可以简单的通过 get_instance...config- item('base_url'); 但是 $this 只能在你的控制器、模型或视图中使用,如果你想在 你自己的类中使用 CodeIgniter 类,你可以像下面这样做: 首先,将 CodeIgniter...(); $CI- load- helper('url'); $CI- load- library('session'); $CI- config- item('base_url'); 如果你类中使用“...redirect(); } public function bar() { $this- CI- config- item('base_url'); } } 在上面的例子,...foo() 和 bar() 方法初始化 Example 类之后都可以正常工作,而不需要在每个方法里都调用 get_instance() 函数。

1.3K21

讲解-加载静态页

讲解 本教程旨在向您介绍CodeIgniter框架和MVC体系结构的基本原理。它将向您展示如何以逐步的方式构造基本的CodeIgniter应用程序。 本教程,您将创建一个基本的新闻应用程序。...控制器就是用来帮助你完成工作的一个简单的类,它是你整个 Web 应用程序的"粘合剂"。...该目录,新建 Home.php 和 About.php 模板文件。每个文件任意输入一些文本然后保存它们。如果你不知道写什么,那就写 "Hello World!" 吧。...页头模板文件,$title 变量代表页面的自定义标题,它是方法中被赋值的,但并不是直接赋值给 title 变量,而是赋值给 $data 数组的 title 元素。...所以控制器 $data['title'] 的值,就等于视图中 $title 的值。 路由 控制器已经开始工作了!

3.5K10
您找到你想要的搜索结果了吗?
是的
没有找到

概述-服务

Introduction CodeIgniter的所有类均作为“服务”提供。这仅意味着,要对要调用的类进行硬定义,而不是对要加载的类名称进行硬编码,而是一个非常简单的配置文件定义它们。...注解 建议仅在控制器内创建服务。其他文件,例如模型和库,应将依赖项传递到构造函数或通过setter方法传递。 方便的功能 提供了两种功能来获得服务。这些功能始终可用。...这与Services文件的方法名称始终返回该类的SHARED实例相同,因此多次调用该函数应始终返回同一实例: $logger = service('logger'); 如果创建方法需要其他参数,则可以服务名称之后传递它们...由于服务文件是非常简单的类,因此轻松进行此工作。 renderer服务就是一个很好的例子。默认情况下,我们希望此类能够中找到视图APPPATH.views/。...想象一下,您已经Blog根目录创建了一个新目录。这将包含一个带有控制器,模型等的Blog模块,并且您想将某些类作为服务使用。

1.7K10

CI一些优秀实践

首先是 MVC 如果你还不知道 MVC ,应该尽快的学习,你会很快的体会到 Model 数据访问, Controller 中进行业务逻辑, Views 编写 HTML 代码的价值。...数据库 和 ORM CodeIgniter 有一个自带的库 Active Record 能够帮助你不使用 SQL 语句的情况下写查询语句。...其中前三个文件夹是用以创建模型、视图和控制器的。您的大部分工作都应该是创建属于自己的MVC,并可在config里加入配置文件,libraries里加入一些对象和方法,用来辅助您的模型和控制器工作。...CodeIgniter工作过程 当有一个http请求时,如http://www.google.com/blog/,首先进入CI的引导文件index.php。...,记录日志的log_message,和引入错误页面的show_404是几个重要的函数;Compat主要解决了php4和php5的函数兼容问题,而constants则定义了一些读写文件权限的常量。

3.3K50

CI框架网页缓存简单用法分析

尽管 CodeIgniter 已经相当高效了,但是网页的动态内容、主机的内存 CPU 和数据库读取速度等因素直接影响了网页的加载速度。...缓存是如何工作的? 可以针对到每个独立的页面进行缓存,并且你可以设置每个页面缓存的更新时间。 当页面第一次加载时,缓存将被写入到 application/cache 目录下的文件中去。...之后请求这个页面时,就可以直接从缓存文件读取内容并输出到用户的浏览器。 如果缓存过期,会在输出之前被删除并重新刷新。...开启缓存 将下面的代码放到任何一个控制器的方法内,你就可以开启缓存了: $this- output- cache($n); //其中 $n 是缓存更新的时间(单位分钟) 上面的代码可以放在方法的任何位置...写入缓存文件之前,你需要把 application/cache/ 目录的权限 设置为可写。 删除缓存 如果你不再需要缓存某个页面,你可以删除掉该页面上的缓存代码, 这样它在过期之后就不会刷新了。

1.4K41

CodeIgniter自学之旅-入门与简单应用

controllers(控制器) views(视图) models(模型) 统称 MVC config(系统配置文件) 下面开始制作 application/controllers 新建一个 blog.php...> 注:以下默认http://yourdomain/为http://localhost/CodeIgniter/,即直接在CodeIgniter文件夹修改。 问题:类函数为什么要为index()?...此时用http://yourdomain/index.php/blog/comment/Bob/love/you 地址访问那么结果就显示 blog comment Bob,love,you 如果要显示自己设置的前台页面里...$this->load->view('blog'); 这句话就是调用了 system/application/views/blog.php 模板文件了 以下是控制器传数据到视图页面 例如控制器文件...参考资料 CodeIgniter 入门与简单应用 此参考资料版本略低,请取舍着看

1.1K10

CI框架实现创建自定义类库的方法

另外,如果你希望现有的类库添加某些额外功能,CodeIgniter 允许你扩展原生的类, 或者你甚至可以在你的 application/libraries 目录下放置一个和原生的类库同名的文件 完全替代它...存储位置 你的类库文件应该放置 application/libraries 目录下,当你初始化类时,CodeIgniter 会在这个目录下寻找这些类。...通常情况下,在你的控制器方法你会使用 $this 来调用所有可用的 CodeIgniter 方法: $this- load- helper('url'); $this- load- library('...session'); $this- config- item('base_url'); 但是 $this 只能在你的控制器、模型或视图中直接使用,如果你想在你自己的类中使用 CodeIgniter 类,...扩展一个类和替换一个类差不多,除了以下几点: 类定义时必须继承自父类。

2.4K31

概述-自动加载文件

它可以定位各个非命名空间的类,遵循PSR4自动加载目录结构的命名空间的类, 甚至可以尝试通用目录(如Controllers,Models等)定位类。...因为它们都是通过spl_autoload_register注册的 ,所以它们按顺序工作,不会互相干扰。...Configuration 初始配置/application/Config/Autoload.php完成。该文件包含两个主数组:一个用于类映射,一个用于PSR4兼容名称空间。...psr4配置文件的数组允许您将名称空间映射到可以以下目录中找到这些类的目录: $psr4 = [ 'App' => APPPATH, 'CodeIgniter...虽然您不必应用程序目录控制器,库或模型设置名称空间,但是如果这样做,它们将在App名称空间下找到。

1.6K30

-辅助函数

默认情况下,CodeIgniter不会加载帮助程序文件,因此使用帮助程序的第一步是加载它。加载后,它将在您的控制器和 视图中全局可用。...帮助程序通常存储您的system / Helpers或 application / Helpers目录CodeIgniter将首先出现在您的 application / Helpers目录。...您可以控制器构造函数中加载帮助程序,以便它们在任何函数自动可用,也可以需要它的特定函数中加载帮助程序。 注解 上面的Helper加载方法不会返回值,因此请勿尝试将其分配给变量。...我们的控制器内,我们可以使用以下命令为我们加载帮助程序: helper('Modules\Blog\blog'); 注解 以这种方式加载的文件的功能未真正命名空间。...目录,您将找到所有可用的帮助程序文件的列表。浏览每个人以查看其工作

1.5K20

CI框架与Thinkphp框架的一些区别

后缀, 如 user.php 这就是一个控制器 修改默认控制器和方法 默认控制器是welcome.php,不喜欢可以改掉。...因为CI控制器命名没有后缀,所以index类的index方法会默认为析构方法__construct(); 所以不可以这样搞,如果改成”index/index”则index方法会被调用两次。...它是一个php文件,不是html文件 CI view() 方法可以使用多次,也就是可以加载多个模板 可以这样写: 1. /application/view/index目录下有这样几个模板文件...header.php main.php footer.php 2.index控制器的home方法 public function home(){...$this->uri 文件system/core/URI.php 如:url为 localhost/CodeIgniter/index.php/index/home echo $this->uri->

2.9K20

CodeIgniter框架实现的整合Smarty引擎DEMO示例

Codeigniter整合Smarty教程(我用的都是最新版本)如下: 第一步:下载Codeigniter最新版本:CodeIgniter框架源码 第二步:下载Smarty最新版本:Smarty引擎源码...2、修改入口文件 入口文件index.php中新增: define('ROOT', dirname(__FILE__)); 3、新建CI_Smarty.php libraries文件下新建CI_Smarty.php...入口文件index.php定义的本web应用的根目录 $this- template_dir = $template_dir ?...'/cache'; } } } 4、controller中使用 控制器Welcome.php写入使用方法,代码如下: <?...更多关于CodeIgniter相关内容感兴趣的读者可查看本站专题:《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《php优秀开发框架总结》、《ThinkPHP入门教程

1.3K41

从Web开发者的视角来解读MVC架构

此类框架的另一个特点是:同一个框架可能会将其应用程序放置控制器,然后将另一部分放置模型。因此不少Web开发人员认为MVC架构略显混乱,甚至毫无固定章法可循。...不过这并不重要,支持多种数据库的不同框架,模型的代码能够一直保持相同。 实际应用,我们只需要修改数据库的驱动程序便可,而不必知晓与之协作的数据库类型。...由于这些动作无法直接从浏览器中生成,因此您只能自行产生一个GET或POST,或者是通过内置某个框架的HTTP客户端,来达到该目的。 在此,控制器充当的是模型与视图之间的中间人角色。...控制器需要通过模型从数据库获取某些数据,而控制器获取到相关数据之后,通过加载视图的方式,将该数据传递给它。接着,模板引擎接管后续的“任务”,实现输出变量之类的逻辑事务。...当然,控制器也可以传递数据的情况下加载某个视图。而此处需要有一个带有HTML和CSS的纯Web页面,就不是真实的模板逻辑。 下面是一个非常简单的例子(或称流程图)。 ?

3.5K20

-CodeIgniter URL

CodeIgniter URL 默认情况下,CodeIgniter 的 URL 被设计成对搜索引擎和用户友好的样式。...不同于使用传统的动态系统中使用代词的标准 “查询字符串” 的方式,CodeIgniter 使用基于段的方法: example.com/news/article/my_article URI 分段 如果遵循模型...-视图-控制器模式,那么 URI 的每一段通常表示下面的含义: example.com/class/method/ID 第一段表示要调用的控制器 类 ; 第二段表示要调用的类的 函数 或 方法 ;...不同的服务器,处理方式各异,故而如下我们主要展示两个最为通用的Web服务器。 Apache服务器 Apache需要开启 mod_rewrite 扩展。...NGINX NGINX,我们可以定义一个 location 块并用 try_files 导向来取得如上文中 Apache 配置一样的效果: location / { try_files $uri

2.2K20

-代码模块

代码模块 CodeIgniter支持代码模块化组合,以便于你构建可重用的代码。模块通常来说是以一个特定主题为中心而构建的,并可被认为是大型的程序的一系列微型程序。...我们支持框架中所有标准的文件类型,例如控制器,模型,视图,配置文件,辅助函数,语言文件等。模块可能包含着或多或少的你所需要的以上这些类型。...files Services 这些是 app/Config/Modules.php 文件配置的。...= false; 和文件打交道Working With Files 这节将会详细介绍每种文件类型(控制器,视图,语言文件等)以及模块如果使用它们。...控制器 主 app/Controller 目录下定义的控制器不会自动被URI路由自动调用,所以需要在路由文件内部手动声明: // Routes.php $routes->get('blog', 'Acme

1.2K10

tp5.0框架隐藏index.php入口文件及模块和控制器的方法分析

本文实例讲述了tp5.0框架隐藏index.php入口文件及模块和控制器的方法。分享给大家供大家参考,具体如下: 1....隐藏入口文件: [ IIS ] IIS的高版本下面可以配置web.Config,中间添加rewrite节点: <rewrite <rules <rule name="OrgPage" stopProcessing...模块和控制器隐藏: public目录下的index.php入口文件里添加define(‘BIND_MODULE’, ‘index/index’);,如下: <?...5.0不同,入口文件修改如下: Container::get('app')- bind('index/index')- run()- send() 更多关于thinkPHP相关内容感兴趣的读者可查看本站专题...:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork

75851
领券