Deutsch

Балуюсь в кохану 17.12.2024

94  
uscheswoi_82 коренной житель5 дней назад, 21:01
uscheswoi_82
NEW 5 дней назад, 21:01 

Всем добрый вечер!

Буду баловаться коханой. Это такой PHP фреймворк см. https://ru.wikipedia.org/wiki/Kohana.

Я установил её тут C:\xampp\htdocs\koh

Вызываю в веб браузере http://localhost/koh/public/


Отображается в браузере следующее:

Environment Tests

The following tests have been run to determine if Kohana will work in your environment. If any of the tests have failed, consult the documentation for more information on how to correct the problem.

PHP Version7.4.2
System DirectoryC:\xampp\htdocs\koh\system\
Application DirectoryC:\xampp\htdocs\koh\application\
Cache DirectoryC:\xampp\htdocs\koh\application\cache\
Logs DirectoryC:\xampp\htdocs\koh\application\logs\
PCRE UTF-8Pass
SPL EnabledPass
Reflection EnabledPass
Filters EnabledPass
Iconv Extension LoadedPass
Mbstring Not OverloadedPass
Character Type (CTYPE) ExtensionPass
URI DeterminationPass

✔ Your environment passed all requirements.
Remove or rename the install.php file now.

Optional Tests

The following extensions are not required to run the Kohana core, but if enabled can provide access to additional classes.

PECL HTTP EnabledKohana can use the http extension for the Request_Client_External class.
cURL EnabledPass
OpenSSL EnabledPass
Mcrypt EnabledKohana can use the Mcrypt extension for the Encrypt class.
GD EnabledPass
PDO EnabledPass
Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Дневник тяжелобольного инвалида
#1 
uscheswoi_82 коренной житель5 дней назад, 21:05
uscheswoi_82
5 дней назад, 21:05 
в ответ uscheswoi_82 5 дней назад, 21:01

Теперь нужно удалить в папке C:\xampp\htdocs\koh\public файл install.php.

Теперь в браузере я перехожу по ссылке http://localhost/koh/public/index.php/welcome и вижу на экране

hello, world!


Вот код Welcome.php:

<?php
  class Controller_Welcome extends Controller {
    public function action_index() {
      $this->response->body('hello, world!');
    }
}

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Дневник тяжелобольного инвалида
#2 
uscheswoi_82 коренной житель5 дней назад, 21:19
uscheswoi_82
NEW 5 дней назад, 21:19 
в ответ uscheswoi_82 5 дней назад, 21:05

Теперь давайте изменим код.

1. В папке C:\xampp\htdocs\koh\application\views добавим файл main.php,и напишим следующее:

<!DOCTYPE html>
<html>
  <head>
    <title><?=$title; ?></title>
  </head>
  <body>
    <div><?=$content; ?></div>
  </body>
</html>


2. А файл C:\xampp\htdocs\koh\application\classes\Controller изменим так:

<?php
  class Controller_Welcome extends Controller {
    public function action_index() {
      $this->response->body(View::factory('main', array('title' => 'Title', 'content' => 'Hello World!')));
    }
}

3. Вызовем в браузере так, вуаля!:


Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Дневник тяжелобольного инвалида
#3 
uscheswoi_82 коренной житель5 дней назад, 21:23
uscheswoi_82
NEW 5 дней назад, 21:23 
в ответ uscheswoi_82 5 дней назад, 21:19
2. А файл C:\xampp\htdocs\koh\application\classes\Controller изменим так:

Точнее файл C:\xampp\htdocs\koh\application\classes\Controller\Welcome.php.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Дневник тяжелобольного инвалида
#4 
uscheswoi_82 коренной житель5 дней назад, 21:55
uscheswoi_82
NEW 5 дней назад, 21:55 
в ответ uscheswoi_82 5 дней назад, 21:23

Давайте побалуемся с переводом/i18n.

Для перевода нужно следующее сделать:

1. В папке C:\xampp\htdocs\koh\application\i18n добавить файлы языков.

2. У нас их будут 2 файла один de.php, а другой en.php:

Вот файл de.php:

<?php
 return array('label1' => 'Das ist ein Text:');


А вот файл en.php:

<?php
 return array('label1' => 'This is a text:');


3. В файле C:\xampp\htdocs\koh\application\views\main.php нужно написать следующее:

<!DOCTYPE html>
<html>
  <head>
    <title><?=$title; ?></title>
  </head>
  <body>
    <div><?php echo __('label1'); ?><?=$content; ?></div>
  </body>
</html>


4. В файле C:\xampp\htdocs\koh\application\classes\Controller\Welcome.php надо написать следующее:

<?php
  class Controller_Welcome extends Controller {
    public function action_index() {
      I18n::lang('de');
      $this->response->body(View::factory('main', 
      array('title' => 'Title', 'content' => 'Hello World!')));
    }
}


5. Вуаля! Результат Das ist ein Text:Hello World!:



Но если мы напишем так:

<?php
  class Controller_Welcome extends Controller {
    public function action_index() {
      I18n::lang('en');
      $this->response->body(View::factory('main', 
      array('title' => 'Title', 'content' => 'Hello World!')));
    }
}


То будет так This is a text:Hello World!:



Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Дневник тяжелобольного инвалида
#5 
uscheswoi_82 коренной житель5 дней назад, 22:17
uscheswoi_82
NEW 5 дней назад, 22:17 
в ответ uscheswoi_82 5 дней назад, 21:55

Я коханой начал баловаться в 2010-2012 гг., т.к. хотел сильно устроится на работу. Но мне слали сплошные отказы.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Дневник тяжелобольного инвалида
#6 
uscheswoi_82 коренной житель5 дней назад, 22:43
uscheswoi_82
NEW 5 дней назад, 22:43 
в ответ uscheswoi_82 5 дней назад, 22:17

Вообще кохана с Украинского переводится как любимый. А кохана мне очень понравилась. Если что кохана это PHP библиотека поэтому она, но можно называть фреймворком, тогда он, а не она. Но мне нравится она называть, т.е. библиотекой.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Дневник тяжелобольного инвалида
#7 
uscheswoi_82 коренной житель5 дней назад, 23:20
uscheswoi_82
NEW 5 дней назад, 23:20 
в ответ uscheswoi_82 5 дней назад, 22:43

Вообще я учился программировать на кохане на этом ютуб канале https://www.youtube.com/watch?v=kxBnXc6Nh_w&list=PLE9227E1.... После того как изучил кохану, смог освоить Yii, немножко Symfony, и ASP NET MVC. И создал свой PHP MVC фреймворк, похожий на фреймворк кохана.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Дневник тяжелобольного инвалида
#8 
uscheswoi_82 коренной житель5 дней назад, 23:24
uscheswoi_82
NEW 5 дней назад, 23:24 
в ответ uscheswoi_82 5 дней назад, 23:20

Короче продолжим. Спомощью метода I18n::lang устанавливаем язык, допустим если нужно вызвать немецкий то I18n::lang('de');, а если английский то I18n::lang('en'); Кохана читает из файлов если на немецком то de.php, а если на английском то en.php. А во вьюшки отображаем спомощью <?php echo __(тут текстовка); ?> допустим <?php echo __('label1'); ?>

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Дневник тяжелобольного инвалида
#9