任何人都可以快速了解命名空间和UserFrosting环境吗?
为了解释我的问题,我使用TCPDF从UserFrosting中的数据创建PDF文档。我在UserFrosting命名空间中创建了一个自定义类MyPDF,这样我就可以通过键入$pdf = new MyPDF(blahblah);
在UF命名空间内创建一个PDF,并且工作正常。
问题在于MyPDF类本身 - 我需要能够从UF引用配置变量而不知道我该怎么做 - 即:
namespace UserFrosting;
class MyPDF extends \TCPDF_TCPDF {
public function Header() {
$image_location = $this->_app->config('upload.path')
如何从config
内访问MyPDF
? ::
我试过了:
class MyPDF extends \TCPDF_TCPDF {
public function Header() {
$ufapp = new UFModel();
$image_location = $ufapp->config('upload.path')
......但没有骰子。我收到此错误:
Cannot instantiate abstract class UserFrosting\UFModel
答案 0 :(得分:1)
<script type="text/javascript">
$(document).ready(function () {
$('.form-control').change(function () {
alert(this.value);
});
});
</script>
只是运行整个应用程序的$app
的全局实例。自UserFrosting
扩展UserFrosting
以来,您可以使用getInstance()
method静态访问它:
Slim\Slim
但更好的方法是将$app = UserFrosting::getInstance();
实际传递到$app
构造函数中。但是,根据您的情况以及您使用MyPDF
的其他位置,这可能会更加困难。
答案 1 :(得分:0)
错误地写了:您无法实例化抽象类。创建从UFModel
扩展的类,并实现此类中的所有抽象方法。
例如,如果您的UFModel
类看起来像这样:
<?php
abstract class UFModel
{
abstract public function getValue();
}
你应该创建扩展这个类的类并实现所有抽象方法:
<?php
class MyModel extends UFModel
{
public function getValue()
{
return 'exampleValue';
}
}
现在您可以使用new
运算符创建对象:
<?php
//...
$ufapp = new MyModel();
//...