[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

【超过500家企业部署】AWS搭建、运维、监控服务

【超过500家企业部署】AWS搭建、运维、监控服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

[仅适用于 WordPress] 云服务器“Web Speed”

[仅适用于 WordPress] 云服务器“Web Speed”

[便宜]网站安全自动诊断“快速扫描仪”

[便宜]网站安全自动诊断“快速扫描仪”

[预约系统开发] EDISONE定制开发服务

[预约系统开发] EDISONE定制开发服务

[注册100个URL 0日元] 网站监控服务“Appmill”

[注册100个URL 0日元] 网站监控服务“Appmill”

【兼容200多个国家】全球eSIM“超越SIM”

【兼容200多个国家】全球eSIM“超越SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

【全球专属服务】Beyond北美及中国MSP

【全球专属服务】Beyond北美及中国MSP

[YouTube]超越官方频道“美由丸频道”

[YouTube]超越官方频道“美由丸频道”

[FuelPHP 1.7] 扩展 Autoloader 类

PHP

我是 WEB 团队的日下。

我想知道如何在 FuelPHP 1.7 中扩展 Autoloader 类,所以我把它写下来!

 

我想做的事

扩展 \Fuel\Core\Autoloader 类并将其定义为 Autoloader 类

 

如何扩展 FuelPHP 的核心类

http://fuelphp.jp/docs/1.7/general/extending_core.html(FuelPHP 1.7)

正如这里所写。

如果您想扩展 Response 类而不是 Autoloader,会更容易。

响应类扩展了 FuelCoreResponse { }

可以保存为app/classes/response.php,并在app/bootstrap.php的add_classes中写入类名和文件路径的对应关系。

Autoloader::add_classes(array( 'Response' => APPPATH.'classes/response.php', ));

但是,当我尝试使用相同的步骤扩展自动加载器时,它不起作用。
为什么?因为自动加载器是一个例外!

 

我担心的地方

文档底部写的内容

自动装载机

Autoloader 类是一种特殊情况,您只能将其扩展为 [ Autoloader]并使用它,扩展后您必须在原始 [ FuelCoreAutoloader] app/bootstrap.php],不要。不要忘记删除将核心类别名为全局的行。

换句话说,就是这个意思。

 

  1. 手动要求在 app/bootstrap.php 中扩展 FuelCoreAutoloader 的 Autoloader 类文件
  2. 删除将核心类别名为全局的行(???)

 

我明白了,就照着做吧!

创建 app/classes/autoloader.php 并

类 Autoloader 扩展 FuelCoreAutoloader { }

在app/bootatrap.php的开头

需要 APPPATH.'classes'.DIRECTORY_SEPARATOR.'autoloader.php';

描述。

 

第二个意思我没看懂,就忽略了,打开了页面。

无法重新声明类自动加载器

我已经被这个问题困扰了一段时间,但我已经解决了。

从结论来看,public/index.php的第50行左右

class_alias('Fuel\Core\Autoloader', 'Autoloader');

如果你把这个注释掉就可以了。

 

这行的意思是

“创建从全局命名空间中的 Autoloader 到 FuelCore 命名空间中的 Autoloader 的别名”

是。 参见http://php.net/manual/function.class-alias.php的 class_alias()

因为这个别名,

类 Autoloader 扩展 FuelCoreAutoloader { }

在本例中,Autoloader 被定义了两次并继承了自身。

 

 

总之,

扩展核心类Autoloader时

  1. 创建app/classes/autoloader.php
    类 Autoloader 扩展 FuelCoreAutoloader { }
  2. 在app/bootstrap.php的开头
    需要 APPPATH.'classes'.DIRECTORY_SEPARATOR.'autoloader.php';

    描述

  3. public/index.php(第 50 行左右)
    class_alias('Fuel\Core\Autoloader', 'Autoloader');

    注释掉

只要控制好这三点就可以了。看来后面的事情进展顺利。

 

如果您觉得这篇文章有帮助,请点赞!
0
加载中...
0 票,平均:0.00 / 10
1,950
X Facebook 哈特纳书签 口袋
[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[大阪/横滨] 积极招募基础设施工程师和服务器端工程师!

[大阪/横滨] 积极招募基础设施工程师和服务器端工程师!

写这篇文章的人

关于作者