【发布时间】:2015-08-29 04:22:24
【问题描述】:
如何在 CakePHP 2.6 中连接模型 $actsAs 数组中的全局常量和字符串?
我有一个文件上传插件,它需要通过 $actsAs 配置提供给它的目录路径,但是虽然它允许我使用全局常量或字符串作为数组键值,但它不允许我连接两个在一起。这是一个问题,因为理论上我的应用程序可能存在于应用程序路径不同的各种环境中,我宁愿不进行硬编码,而是使用相对于全局常量 ROOT 的路径。
在我看来,我遇到了 PHP 的限制。对此有什么好的解决方案?蛋糕专用/蛋糕友好的解决方案是一个加分项。
什么有效:
// Import.php
public $actsAs = array(
'Uploader.Attachment' => array(
'filename' => array(
// You can use a global constant by itself:
'tempDir' => TMP,
'uploadDir' =>
// Using a full string works, too.
'/var/www/vhosts/hostname/app/webroot/file/imports',
//
'finalPath' => '/file/imports/',
'nameCallback' => 'nameCallback',
'overwrite' => false,
),
),
);
我想工作,但没有工作。我没有连接,而是收到“意外的'。'”错误:
public $actsAs = array(
'Uploader.Attachment' => array(
'filename' => array(
'tempDir' => TMP,
// Concatenation of the two results in an "unexpected ." error:
// ROOT being '/var/www/vhosts/hostname/'
'uploadDir' => ROOT . '/app/webroot/file/imports',
//
'finalPath' => '/file/imports/',
'nameCallback' => 'nameCallback',
'overwrite' => false,
),
),
);
【问题讨论】: