Русскоязычный форум, посвященный фреймворку Kohana
http://forum.kohanaframework.su/

Пишу свой первый модуль. Помогите разобраться.
http://forum.kohanaframework.su/viewtopic.php?f=31&t=739
Страница 1 из 1

Автор:  nkl [ 28 авг 2013, 15:25 ]
Заголовок сообщения:  Пишу свой первый модуль. Помогите разобраться.

Итак, в этой теме я уже что-то начал. Но как обычно пошел не по тому пути. А поскольку та тема к созданию модулей имеет весьма посредственное отношение, то решил создать конкретно эту тему для разъяснения именно этого вопроса.
Итак, что мне нужно понять в первую очередь.
1. Почему возникает такая ошибка: ErrorException [ Fatal Error ]: Class 'Base_Docx' not found.

Вот структура каталогов моего модуля:
MODPATH.docx
MODPATH.docx/classes
MODPATH.docx/classes/Docx.php
Код:
<?php defined('SYSPATH') OR die('No direct access allowed.');

class Docx extends Base_Docx { }

MODPATH.docx/classes/Base/Docx.php
Код:
<?php defined('SYSPATH') OR die('No direct access allowed.');

 abstract class Base_Docx {
   
    public $a;
    public $b;
   
    public static function summ(){
        return $a + $b;
    }
}


Я подключил модуль в bootstrap.php и пытаюсь работать с этим модулем вот так:
Код:
$docx = new Docx();
                $docx->a = 5;
                $docx->b = 2;
               
                $this->template->footer = $docx->summ;

И у меня возникает вышеуказанная ошибка ErrorException [ Fatal Error ]: Class 'Base_Docx' not found.
Где я накосячил?

Автор:  WinterSilence [ 28 авг 2013, 15:57 ]
Заголовок сообщения:  Re: Пишу свой первый модуль. Помогите разобраться.

скорее всего дело в том, что метод всего 1 и он статичный + ошибки в его вызове, а в структуре вроде ошибок нет

Автор:  nkl [ 28 авг 2013, 17:40 ]
Заголовок сообщения:  Re: Пишу свой первый модуль. Помогите разобраться.

Кохана была права, этого файла действительно там не было. Нечаянно отключил в IDE функцию автоматической выгрузки на FTP-сервер проекта.
UPD1
Все заработало! Складывает числа мой модуль)

Автор:  nkl [ 28 авг 2013, 23:42 ]
Заголовок сообщения:  Re: Пишу свой первый модуль. Помогите разобраться.

Итак, теперь я хочу сделать проверочную страницу у этого модуля. Делаю это так:
1.Изменяю структуру каталогов и файлов след. образом
MODPATH.docx
MODPATH.docx/classes
MODPATH.docx/classes/Base
MODPATH.docx/classes/Base/Docx.php
Код:
<?php defined('SYSPATH') OR die('No direct access allowed.');

 abstract class Base_Docx {
   
    public $a;
    public $b;
   
    public function summ(){
        return $this->a + $this->b;
    }
}

MODPATH.docx/classes/Controller
MODPATH.docx/classes/Controller/Docx.php
Код:
<?php defined('SYSPATH') OR die('No direct access allowed.');

class Controller_Docx extends Controller_Template{
   
    public static function before() {
        parent::before();
        $this->template = View::factory('testModule');
    }

    public function action_index(){
        /*$this->a = $_POST['a'];
        $this->b = $_POST['b'];*/
       
        $this->template->summ = '$summ';
    }
}

MODPATH.docx/classes/Docx.php
Код:
<?php defined('SYSPATH') OR die('No direct access allowed.');

class Docx extends Base_Docx { }

MODPATH.docx/view
MODPATH.docx/view/testModule.php
Код:
<h3>Страница проверки работы модуля KohanaDocx</h3>
<p><?=$summ?></p>

MODPATH.docx/init.php
Код:
<?php defined('SYSPATH') or die('No direct script access.');

Route::set('docx', '<docx>(/<action>)')
   ->defaults(array(
      'controller' => 'docx',
      'action'     => 'index',
   ));


Когда модуль включен, невозможно зайти ни на одну страницу, код ошибки: 500.
Выключаю модуль в бутстрапе и все опять работает.

Автор:  WinterSilence [ 29 авг 2013, 14:32 ]
Заголовок сообщения:  Re: Пишу свой первый модуль. Помогите разобраться.

$this->template->summ = '$summ'; wtf?!

а по факту скорее всего роут не алё

Автор:  nkl [ 29 авг 2013, 16:40 ]
Заголовок сообщения:  Re: Пишу свой первый модуль. Помогите разобраться.

Цитата:
$this->template->summ = '$summ'; wtf?!

Это просто вывод строки для проверки.
На счет роута, надо бы проверить.

Автор:  WinterSilence [ 01 сен 2013, 21:44 ]
Заголовок сообщения:  Re: Пишу свой первый модуль. Помогите разобраться.

ты натолкнул меня на мысль сделать песочницу для испытания роутов.
основная идея в Route::get($name)->matches(Request::factory($uri)).

Автор:  Sergey [ 14 сен 2013, 13:31 ]
Заголовок сообщения:  Re: Пишу свой первый модуль. Помогите разобраться.

WinterSilence писал(а):
ты натолкнул меня на мысль сделать песочницу для испытания роутов.
основная идея в Route::get($name)->matches(Request::factory($uri)).


Основные идеи можешь подчеркнуть тут: https://github.com/bluehawk/devtools
Кстати, инструмент тестирования роутов можно было бы создать доступным для всех, например как онлайн сервис ;)

Страница 1 из 1 Часовой пояс: UTC + 4 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/