PHP CodeIgniter 框架中的命名空间

2024-04-24

CodeIgniter 支持命名空间吗?


如何让命名空间在 Codeigniter 中工作

实际上,您可以让命名空间与应用程序模型中的相对路径结合使用。此修改使加载模型变得更加容易,并且还允许您拥有接口......

将其添加到 application/config/config.php 的末尾

spl_autoload_extensions('.php'); // Only Autoload PHP Files

spl_autoload_register(function($classname) {
    if (strpos($classname,'\\') !== false) {
        // Namespaced Classes
        $classfile = strtolower(str_replace('\\', '/', $classname));

        if ($classname[0] !== '/') {
            $classfile = APPPATH.'models/' . $classfile . '.php';
        }               
        require($classfile);
    } elseif (strpos($classname, 'interface') !== false) {
        // Interfaces
        strtolower($classname);
        require('application/interfaces/' . $classname . '.php');
    }
});

命名空间类示例:

<?php
// File: application/models/foo/bar.php
namespace foo;

class Bar extends \CI_Model implements \Awesome_interface {

    public $foobar;

    public function __construct() {
        return parent::__construct();
    }

    public function getFoobar() {
        return $this->foobar;
    }

    public function setFoobar($val) {
        $this->foobar = $val;
    }

}

在代码中某处实例化类的示例:

重要的提示:不要使用内置的 CI_Loader (例如:$this->load->model();)

// This will Autoload Your Namespaced Class
$example = new foo\Bar();

或者在 PHP 类(例如:控制器、其他模型)之上,您可以执行此操作...

<?php
...
use foo\Bar as FooBar;

...

// Then you can just do this
$example = new FooBar();

接口示例:

<?php
// File: application/interfaces/awesome_interface.php
interface Awesome_interface {

    public function getFoobar();

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP CodeIgniter 框架中的命名空间 的相关文章

  • PHP:数组可以有一个数组作为键值对中的键吗?

    我得到这个数组的 非法偏移类型 public static CATS AND TYPES array Statement Administration array self CAT STATEMENT ADMIN gt Document A
  • 构建一个“简单”的 php url 代理

    我需要在我正在构建的 Web 应用程序中实现一个简单的 PHP 代理 它基于 Flash 并且目标服务提供商不允许编辑其 crossdomain xml 文件 任何 php 专家都可以就以下 2 个选项提供建议吗 另外 我认为 但不确定 我
  • 使用 GMail 和 phpMailer 发送时出现“服务器未接受密码:535 身份验证数据不正确”

    我在本地主机上运行相同的 php 脚本 我的带有 XAMPP 的 PC 和托管服务器上 它可以在我的电脑上运行 但不能在托管服务器上运行 当我从托管服务器发送它时 我得到以下输出 SMTP gt ERROR Password not acc
  • 如何用php将文件内容转换为字节数组

    我想用PHP将上传的文件保存 插入 到数据库中 数据库字段的类型是varbinary 最后 我想要获得 VarBinary 输出 的内容 就像在 C 中读取文件然后将其存储在字节数组中并将数组插入到 VarBinary 中一样 我与数据库的
  • 如何修改python中的本地命名空间

    如何修改Python中函数的本地命名空间 我知道 locals 在函数内部调用时返回函数的本地命名空间 但我想做这样的事情 我有一个原因为什么我想在 f 无法访问 g 的情况下执行此操作 但给出更快一个简单的 愚蠢的例子来说明问题 def
  • 强制下载不同的文件[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我正在尝试
  • 在 PHP 中生成 Excel 输出的最佳方法是什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 还有其他类似 PHPExcel 的 PHP 组件吗 有一些类可以生成 PHP Excel 文件 真正的 Excel 文件 而不是 csv
  • 推送通知发送成功,但设备收不到(偶尔)

    从昨天开始 我一直遇到一些设备无法收到推送通知的问题 证书 设备令牌似乎是正确的 直到昨天 该设备才能成功接收推送通知 在服务器端 没有错误或连接拒绝 并且推送通知似乎每次都成功发送 但仍然有很多情况下设备无法正确接收推送 一些周边信息 我
  • PHP DOM 获取选定的

    假设 HTML 看起来像这样
  • 使用链接进行电子邮件验证是一个坏主意

    在我的注册过程中 用户注册后 他们会收到通过电子邮件发送的验证链接 如果他们单击该链接 那么他们的帐户才会得到验证 但这种验证方法对于机器人来说是不是太容易了 我认为电子邮件可以由机器人创建 但可以肯定的是 如果验证只是单击链接 那么它也可
  • Windows 更新警告:未知:无法打开流:第 0 行的“未知”中没有此类文件或目录

    警告 未知 无法打开流 第 0 行的 未知 中没有此类文件或目录 致命错误 未知 无法在线未知中打开所需的 C School OneDrive Noorderpoort PHP htdocs Jaar1 Blok1 Les7 oefenin
  • 如何在 PHP 中解密密码哈希?

    我需要解密密码 密码已加密password hash功能 password examplepassword crypted password hash password PASSWORD DEFAULT 现在 我们假设 crypted存储在
  • 在 Codeigniter 中加载 javascript

    对于我们的 Code Igniter 应用程序 我们在结束 body 标记之前加载所有 javascript 所以在我们的控制器中我们有 this gt load gt view head this gt head this gt load
  • 未捕获的错误:调用未定义的函数 mysql_connect() [重复]

    这个问题在这里已经有答案了 未捕获错误 调用 C xampp htdocs phoenixproject register php 9 中未定义的函数 mysql connect 堆栈跟踪 0 main 在第 9 行 C xampp htd
  • 每行仅显示 3 个 foreach 结果

    我的脚本如下 output table class products tr while info mysql fetch array data Outputs the image and other data output td img s
  • 如何使用 PHP 跳过 XML 文件中的无效字符

    我正在尝试使用 PHP 解析 XML 文件 但收到错误消息 解析器错误 字符 0x0 超出允许范围 我认为这是因为 XML 的内容 我认为有一个特殊符号 我能做些什么来修复它 我还得到 解析器错误 标签项行中数据过早结束 可能是什么原因导致
  • 在php中如何设置数组的大小?

    我只想在 php 中设置数组的大小 而不必用任何值填充它 我怎么做 Use 固定阵列 http php net SplFixedArray对于固定大小的数组 array new SplFixedArray 3 array 0 1 array
  • 仅在 PHPUnit 中需要时才执行 dataProviders?

    我的测试套件即使只是开始也需要几分钟 这是因为数据提供者在 phpunit 启动时立即执行 并且它们的所有数据 数千个对象 都保存在内存中 有没有办法在测试运行之前调用 dataProviders 我不在乎在屏幕上看到如此精确的进展 Tha
  • 使用 php 在没有“manage_pages”权限的情况下发布到 Facebook 页面

    我有一个包含博客文章的网站 我们需要自动将博客发布到 Facebook 页面 目前我可以发布到我的时间线 但我无法发布到 Facebook 页面 我在谷歌搜索过 许多代码说我们需要manage pages权限 我的应用程序 Facebook
  • 如何从symfony2中的现有表生成实体?

    我有带有一些字段的表 my table 我想在 MyBundle 中使用 my table 生成实体 但我不想重新创建 MyBundle 中的所有实体 我怎样才能做到这一点 这是你可以做到的方法 第一步 要求Doctrine自省数据库并生成

随机推荐

  • 在javascript中读取excel是将长数字转换为指数

    我正在使用 SheetJs 读取 Excel 文件 但问题是它正在转换长数字 例如3577888990098指数般3 52E 12 这个问题并不重复 因为 文件列可以是随机的 系统不会知道哪些是数字 哪些是字符串 按字母顺序 或两者 那么如
  • 什么是 AABB - 碰撞检测?

    嗨 我正在制作一个体素游戏Java在研究我需要学习的所有不同东西时 我注意到很多游戏都使用AABB用于碰撞检测 然后我记得看到AABB在 我的世界 中也有 但是当我用谷歌搜索什么时AABB也就是说 它只是提出了其他人的代码 或者历史书上的某
  • Exchange Web 服务托管 API:访问其他用户项目

    是否可以访问除登录用户之外的其他 Exchange 帐户的文件夹和项目 我可以通过 Exchange Web 服务托管 API 执行此操作吗 是的 这是可能的 但您应该知道其他用户的密码或以某种方式获取此凭据 NetworkCredenti
  • 如何使用 @ngrx/data 自定义我的减速器?

    我正在学习使用 ngrx data 确实 使用该库我推进了很多代码 但在个性化它时我遇到了问题 我已经了解了如何将字段添加到集合中 export const entityMetadata EntityMetadataMap User add
  • iframe 不适用于 iOS(离子框架)

    我为 iOS 和 Android 开发了一个带有 ionic 框架的应用程序 安卓上没有问题 但是 尽管 iframe 在 Android 和浏览器中运行良好 但它在 iOS 设备和模拟器中没有显示任何内容 请帮我 尝试将其添加到您的 co
  • C 中浮点数的比较

    我有一个double打印为0 000000我试图将其与0 0f 不成功 为什么这里有区别呢 确定双精度数是否为零的最可靠方法是什么 确定它是否足够接近零以将其打印为0 000000精确到小数点后六位 例如 fabs d lt 0 00000
  • Google Maps API 多边形文物在缩放上显示

    我有一个使用 JS API 构建的 Google 地图 其中包含英国不同地区的多边形 在 Chrome 已测试 v58 和 v60 上 当用户使用滚轮放大或缩小时 多边形的随机伪像会卡在地图上 进一步缩放可以消除它们或显示不同的伪影 在 F
  • 在虚拟机共享目录上运行“grunt”

    将 Vagrant 与 Windows 主机和 Linux 客户机一起使用 grunt尝试运行作业时返回以下错误 据我了解 在主机 来宾共享目录中 此文件路径超出了 Windows 的 255 个字符限制 npm ERR Error EPE
  • 如何将 UIPopoverView 显示为地图视图的注释? (iPad)

    在 iPad 的地图应用程序上 当您点击图钉时 您会看到带有 i 的普通注释 而不是公开指示符 进一步点击 i 会显示一个像这样的弹出视图控制器 有没有办法可以轻松实现这一目标 首先在地图上添加注释viewForAnnotation方法 设
  • 如何在 PyCharm 中自动运行 Main.py

    我更喜欢在我的项目中使用类似 Java 的组织 例如 每个班级都有不同的 py文件和类Main 其中仅包含 main 函数 每次我对一个类进行更改时 我都需要单击 Main 并运行代码 Ctrl Shift F10 从那里 我该如何定义我的
  • Rails 计数器缓存与计算

    我有一个想要显示总计的集合 其想法是为我需要的每个总计使用缓存 然而 我还需要深入研究数据集 所以很可能无论如何我都必须加载该集合 那么我应该仍然使用缓存还是只使用计算 正如斯蒂芬 奥唐纳 Stephen ODonnell 所说 取决于藏品
  • 如何使用 Kotlin 在 Android 中压缩照片

    现在这是我从智能手机拍照的代码 问题是图像非常大 我想压缩它 有一些帮助或想法吗 谢谢 你的 信息 执行 abrirCamara 方法 private fun abrirCamara val values ContentValues val
  • Facebook 帖子,图片托管在公共 CDN 上

    Facebook 似乎屏蔽了我引用的任何由 CDN 支持的图像 这是真的 有办法解决这个问题吗 是否有文档说明您可以在帖子的 图片 参数中引用哪些内容以及不能引用哪些内容 是的 Facebook 禁止您在帖子 分享等中使用其 CDN 中的图
  • 如何将Stripe支付集成到Yii2中?

    我有以下代码 它运行时没有错误 但它不会将资金插入到 Stripe 服务器上 Stripe 库已正确安装 配置文件
  • BERT - 池化输出与序列输出的第一个向量不同

    我在 Tensorflow 中使用 BERT 有一个细节我不太明白 根据文档 https tfhub dev google bert uncased L 12 H 768 A 12 1 https tfhub dev google bert
  • 如何从 Objective-C 中的方法返回 C 数组?

    我有一个返回变量的函数 我想知道如何返回一个数组 问题是它不是 NSArray 它只是一个像这样的平均 C 数组 b2Fixture addFixturesToBody b2Body body forShapeName NSString s
  • 在CXF中使用javax.ws.rs.client.ClientBuilder创建客户端,任何路由都能够使用本地传输?

    我正在开发一个使用标准的代码库 javax ws rs client ClientBuilder 类 来自 CXF 发行版 用于配置和创建 javax ws rs client Client 这已经足够好了 我现在正在尝试编写使用的测试JA
  • 如何使用 gnu cp 命令将文件复制到多个目录

    是否可以使用 cp 命令将单个文件复制到多个目录 我尝试了以下方法 但没有成功 cp file1 foo bar cp file1 foo bar 我知道可以使用 for 循环或 find 但是可以使用 gnu cp 命令吗 你不能这样做c
  • 将字符串中第 N 次出现的字符替换为其他字符

    考虑a paste 1 10 collapse 这导致 a 1 2 3 4 5 6 7 8 9 10 我想替换每第 n 次 比如第 4 次 出现的 并将其替换为其他内容 比如 n 期望的输出是 1 2 3 4 n 5 6 7 8 n 9 1
  • PHP CodeIgniter 框架中的命名空间

    CodeIgniter 支持命名空间吗 如何让命名空间在 Codeigniter 中工作 实际上 您可以让命名空间与应用程序模型中的相对路径结合使用 此修改使加载模型变得更加容易 并且还允许您拥有接口 将其添加到 application c