Отсутствие глобального пути приложения в оболочках ломает некоторые из моих моделей - PullRequest
0 голосов
/ 21 января 2012

У меня проблема с глобальными путями при работе в оболочках.Например, при загрузке моей модели файла в оболочке константа 'APP' недоступна, что приводит к появлению этой строки:

$fileStorePath = APP.'/Data/FileStore/';

Для генерации следующей ошибки:

PHP Parse error:  syntax error, unexpected '.', expecting ',' or ';' in 
/home/cakedev/public_html/app/Model/File.php on line 15

Яздесь чего-то не хватает?Я не пытаюсь использовать переменную окружения Apache ... Все, что мне нужно, это глобальное приложение.

Вот файл File.php

<?php
App::uses('AppModel', 'Model');

/**
 * File model
 *
 * Store files and retrieve them
 *
 */
class File extends AppModel {

    public $displayField = 'filename';
    public $actsAs = array('Logable','Error');

    private $__fileStorePath = APP.'/Data/FileStore/';

    function beforeSave($options = array()) {
      // Make sure input file exists
      if ( !file_exists($this->data['File']['inputfile']) ) {
        $this->throwError(__('File [%s] does not exist',$this->data['File']['inputfile']));
        return;
        }
        // Tack on the file info
        $finfo = finfo_open(FILEINFO_MIME_TYPE);
        $this->data['File']['filename'] = basename($this->data['File']['inputfile']);
        $this->data['File']['mime'] = finfo_file($finfo, $this->data['File']['inputfile']);
        $this->data['File']['size'] = filesize($this->data['File']['inputfile']);
        $this->data['File']['uuid'] = uniqid();
    return true;
  }

    function afterSave($created) {
      if ( $created ) {
            // Move the file
            if ( !rename($this->data['File']['inputfile'],$this->__fileStorePath.$this->data['File']['uuid']) ) {
                $this->throwError(__('File [%s] could not be moved',$this->data['File']['input']),500);
                return;
            }
    }
    return true;
  }

  var $belongsTo = array(
            'User' => array('className' => 'User',
            'foreignKey' => 'user_id',
            )
    );
}

1 Ответ

0 голосов
/ 24 января 2012

Ну, я идиот ... вы не можете объединять в определениях классов.Это «особенность» PHP, а не ошибка торта.Торт работает нормально ...

...