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>

Входът е добре дефиниран.

Ако някой може да ми обясни какво не е наред, ще бъда много оценен!


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 бита, тъй като не знам къде сте го запазили. Наистина трябва да е в папките Vendors, ако е външна библиотека. Вижте тук за повече информация.

person Dunhamzzz    schedule 21.02.2013
comment
Добра работа, това е ефективно, трябва да използвам: App::uses('Xml', 'Utility'); Благодаря много - person Viluredfish; 21.02.2013