Cakephp Helper выдает ошибку в определенном представлении

У меня что-то странное с моим помощником. Во-первых, я только начал работать с cakePHP и MVC. Может я что-то не так делаю, но не могу найти что.

Для моего приложения я должен использовать файл Xml для обработки языка для моего текста (я знаю, что есть много разных способов обработки языка, но мне нужно использовать этот). Поэтому я создаю помощника (XmlHelper.php, в View\Helper\Xmlhelper.php)

<?php
App::uses('AppHelper', 'View/Helper','Xml');


class XmlHelper extends AppHelper {
    var $xml = array();
    var $name = 'Xml';
    var $filename = '';

    public function getXml($filename, $language, $view) {
         $this->xml = Xml::toArray(Xml::build('Xml/'.$filename.'.xml')); //THE LINE
         $this->xml = $this->xml[$filename][$language][$view];
         $this->filename = $filename;
    }

    public function readXml($tags) {
        $tempXml =  $this->xml;
        foreach ($tags as $tag){
            $tempXml =  $tempXml[$tag];
        }
        return  $tempXml;
    }
}

С моего контроллера я получил:

class EventsController extends Controller {
public $helpers = array('Html', 'Form','Xml');
    public $components = array('Session');

И у большинства на мой взгляд все работает нормально, а у некоторых просто огонь

Error: Class 'Xml' not found File:
C:\wamp\www\cakephp\app\View\Helper\Xmlhelper.php Line: 11

На мой взгляд, я звоню :

<?php $this->Xml->getXml('dico',$ln,'thanks'); ?>
<h1><?php echo $this->Xml->readXml(array('texte'));?></h1>

Ln хорошо определен.

Если кто-то может объяснить мне, что не так, это будет очень признательно!


person Viluredfish    schedule 21.02.2013    source источник


Ответы (1)


Проблема заключается в классе XML, который вы используете внутри вашего XmlHelper.

По сути, вы используете App:uses(); неправильно, его можно использовать только для включения одного класса за раз, поэтому вам нужно добавить еще одну строку:

App::uses('AppHelper', 'View/Helper');
App::uses('Xml', 'Path/To/Xml.php');

Я не могу вам помочь с битом Path/To/Xml.php, так как не знаю, где вы его сохранили. Должно быть действительно в папках поставщиков, если это внешняя библиотека. Дополнительную информацию см. здесь.

person Dunhamzzz    schedule 21.02.2013
comment
Хорошая работа, эффективно, что я должен использовать: App::uses('Xml', 'Utility'); Большое спасибо - person Viluredfish; 21.02.2013