【发布时间】:2017-07-03 15:02:17
【问题描述】:
我正在学习 php 中的命名空间。
我在vendor/anuj-tbe/social-upload 目录中创建了 3 个文件,树视图就像
social-upload
|- SocialUpload.php
|- Facebook
|- FacebookUpload.php
|- Youtube
|- YoutubeUpload.php
它们的内容是:
SocialUpload.php
<?php
namespace SocialUpload;
class SocialUpload {
}
Facebook/FacebookUpload.php
<?php
namespace SocialUpload\FacebookUpload;
use SocialUpload\SocialUpload;
class FacebookUpload extends SocialUpload {
private $access_token = '';
function __construct($access_token)
{
$this->access_token = $access_token;
}
public function upload($video_file, $file_path)
{
return true;
}
}
Youtube/YoutubeUpload.php
<?php
namespace SocialUpload\YoutubeUpload;
use \SocialUpload\SocialUpload;
class YoutubeUpload extends SocialUpload {
private $access_token;
function __construct($access_token)
{
$this->access_token = $access_token;
}
public function upload($video_file, $file_path)
{
return true;
}
}
现在,我想在我的应用程序中任何需要的地方使用它。
我可以使用SocialUpload 类的对象访问FacebookUpload 或YoutubeUpload 类的upload() 吗?
另外,如何将它添加到 composer autoload 以使用命名空间从任何地方访问这些类?
【问题讨论】:
-
如果您正在学习,请查看php-fig.org/psr/psr-4 标准以简化作曲家自动加载。
标签: php inheritance namespaces