首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从UserFrosting中的另一个类中访问配置vars?

如何从UserFrosting中的另一个类中访问配置vars?
EN

Stack Overflow用户
提问于 2016-09-06 08:53:39
回答 2查看 77关注 0票数 1

有人能帮我快速处理名称空间和UserFrosting环境吗?

为了解释我的问题,我使用TCPDF从UserFrosting中的数据创建一个PDF文档。我已经在MyPDF命名空间中创建了一个自定义类UserFrosting,所以我可以通过键入$pdf = new MyPDF(blahblah);在UF命名空间中创建一个PDF,这样就可以了。

问题在于MyPDF类本身--我需要能够从UF引用配置vars,并且不知道如何做到这一点--即:

代码语言:javascript
复制
namespace UserFrosting;

 class MyPDF extends \TCPDF_TCPDF {

   public function Header() {
      $image_location = $this->_app->config('upload.path')

如何从config内部访问MyPDF?:

我试过:

代码语言:javascript
复制
class MyPDF extends \TCPDF_TCPDF {

 public function Header() {
    $ufapp = new UFModel();
    $image_location = $ufapp->config('upload.path')

..。但没有骰子。我得到了一个错误:

代码语言:javascript
复制
Cannot instantiate abstract class UserFrosting\UFModel
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-06 15:46:27

$app只是运行整个应用程序的UserFrosting的全局实例。由于UserFrosting扩展了Slim\Slim,所以可以使用方法静态地访问它。

$app = UserFrosting::getInstance();

不过,更好的方法是将$app实际传递到MyPDF构造函数中。但是,取决于您的情况和您使用MyPDF的其他位置,这可能会更加困难。

票数 1
EN

Stack Overflow用户

发布于 2016-09-06 08:56:38

它是错误编写的:,您不能实例化抽象类。创建从UFModel扩展的类,并实现该类中的所有抽象方法。

例如,如果您的UFModel类如下所示:

代码语言:javascript
复制
<?php

abstract class UFModel
{
   abstract public function getValue();
}

您应该创建扩展该类并实现所有抽象方法的类:

代码语言:javascript
复制
<?php

class MyModel extends UFModel
{
   public function getValue()
   {
       return 'exampleValue';
   }
}

现在您可以使用new操作符创建对象:

代码语言:javascript
复制
<?php

//...
$ufapp = new MyModel();
//...

有关PHP中的抽象类的更多信息

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39344681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档