php – 将在自动加载的命名空间类文件中声明的函数转换为全局函数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 将在自动加载的命名空间类文件中声明的函数转换为全局函数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1123字,纯文字阅读大概需要2分钟。
内容图文
![php – 将在自动加载的命名空间类文件中声明的函数转换为全局函数](/upload/InfoBanner/zyjiaocheng/805/4bddf9fc958143b68a9aab2b5c605fe1.jpg)
我的要求可能看起来像是糟糕的做法,但是我想知道它是否可行.
我正在使用作曲家自动加载我的课程.在其中一个类文件中,我想定义一个可以在全局命名空间中用作速记的函数.由于作曲家的要求,该类需要被命名空间.
我的问题:有什么方法可以通过微小的改动来实现这个目的吗?
MyClass.php:
<?php
namespace Jodes;
class MyClass {
public function __construct() {
echo "I am the class";
}
}
function fn(){
echo "I am a shorthand for doing stuff";
}
index.php文件:
<?php
require_once '../vendor/autoload.php';
use Jodes\MyClass;
new MyClass();
// Jodes\fn(); // works
// fn(); // doesn't work
composer.json
{
"name": "jodes/mypackage",
"autoload": {
"psr-4" : {
"Jodes\\" : "src"
}
}
}
尽管阅读了比我能算的更多的链接,但我已经尝试了所有我能想到的运气.
谢谢
解决方法:
首先,如果此函数不是MyClass的一部分,则不应将其放在同一文件中.惯例是将每个类(并且只有该类)放在单独的文件中.
对于像你的fn()那样全局可用的辅助函数,你需要一个单独的文件.在全局命名空间中声明函数,然后使用composer的文件机制添加到您的composer项目:
//common.php
<?php
function fn() {
// some code
}
//composer.json
"autoload": {
"files": ["path/to/common.php"]
}
这将为每个请求加载common.php文件,并使您的帮助函数可用.
内容总结
以上是互联网集市为您收集整理的php – 将在自动加载的命名空间类文件中声明的函数转换为全局函数全部内容,希望文章能够帮你解决php – 将在自动加载的命名空间类文件中声明的函数转换为全局函数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。