Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 01.05.2013 14:49:28

Перенос сайта на Lavarel

Добрый день!
Задам, наверное, очень глупый вопрос, но тем не менее не получается разобраться иначе.

У меня есть сайт, состоящий из двух страничек (к примеру). Как мне перенести его на среду lavarel?
То есть, вот есть примеры движков, использующих в себе lavarel. Как например этот - https://github.com/dr-dimitru/indira
И всё устанавливается и работает (я имею ввиду тестовый сайт, который там уже есть).

Но в самом index.php только:

define('LARAVEL_START', microtime(true));
$web = true;
require '../paths.php';
unset($web);
require path('sys').'laravel.php';

В свою очередь в paths.php тоже код в несколько строк. И это очень локанично и здорово.
Вот только сайт то открывается и там куча всего, но откуда он это всё берёт мне непонятно))

Ещё раз извиняюсь за глупый вопрос, надеюсь вы поможете мне прояснить ситуацию.
Заранее благодарен за ответ.

С уважением, d1st.

Изменено d1st (01.05.2013 14:50:18)

Не в сети

#2 01.05.2013 14:58:10

Re: Перенос сайта на Lavarel

Скорее всего используется include_path. Это типичное решение для B2B-платформ (если я правильно понял твой вопрос).

Не в сети

#3 01.05.2013 15:07:38

Re: Перенос сайта на Lavarel

Вопрос заключает в том, откуда берётся весь фронтенд?)

Я вижу, есть папки (в public) с сss, с js, с изображениями. Ну видимо эти вещи он оттуда и берёт, это понятно.
Но откуда берётся вся html структура? С блоками, списками, классами?) Где это всё?)

Не в сети

#4 01.05.2013 15:56:01

Re: Перенос сайта на Lavarel

Не в сети

#5 01.05.2013 16:39:48

Re: Перенос сайта на Lavarel

Не вижу нигде там include_path.
Код index.php я вам привёл.

Вот paths.php:

<?php
/**
* Laravel - A PHP Framework For Web Artisans
*
* @package  Laravel
* @version  3.2.3
* @author   Taylor Otwell <taylorotwell@gmail.com>
* @link     http://laravel.com
*/

/*
|----------------------------------------------------------------
| Application Environemtns
|----------------------------------------------------------------
|
| Laravel takes a dead simple approach to environments, and we
| think you'll love it. Just specify which URLs belongs to a
| given environment, and when you access your application
| from a URL matching that pattern, we'll be sure to
| merge in that environment's configuration files.
|
*/

$environments = array(

    'local' => array('http://localhost*', '*.dev'),

);

// --------------------------------------------------------------
// The path to the application directory.
// --------------------------------------------------------------
$paths['app'] = 'application';

// --------------------------------------------------------------
// The path to the Laravel directory.
// --------------------------------------------------------------
$paths['sys'] = 'laravel';

// --------------------------------------------------------------
// The path to the bundles directory.
// --------------------------------------------------------------
$paths['bundle'] = 'bundles';

// --------------------------------------------------------------
// The path to the storage directory.
// --------------------------------------------------------------
$paths['storage'] = 'storage';

// --------------------------------------------------------------
// The path to the public directory.
// --------------------------------------------------------------
$paths['public'] = 'public';

// *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
// END OF USER CONFIGURATION. HERE BE DRAGONS!
// *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

// --------------------------------------------------------------
// Change to the current working directory.
// --------------------------------------------------------------
chdir(__DIR__);

// --------------------------------------------------------------
// Define the directory separator for the environment.
// --------------------------------------------------------------
if ( ! defined('DS'))
{
    define('DS', DIRECTORY_SEPARATOR);
}

// --------------------------------------------------------------
// Define the path to the base directory.
// --------------------------------------------------------------
$GLOBALS['laravel_paths']['base'] = __DIR__.DS;

// --------------------------------------------------------------
// Define each constant if it hasn't been defined.
// --------------------------------------------------------------
foreach ($paths as $name => $path)
{
    if ( ! isset($GLOBALS['laravel_paths'][$name]))
    {
        $GLOBALS['laravel_paths'][$name] = realpath($path).DS;
    }
}

/**
* A global path helper function.
*
* <code>
*     $storage = path('storage');
* </code>
*
* @param  string  $path
* @return string
*/
function path($path)
{
    return $GLOBALS['laravel_paths'][$path];
}

/**
* A global path setter function.
*
* @param  string  $path
* @param  string  $value
* @return void
*/
function set_path($path, $value)
{
    $GLOBALS['laravel_paths'][$path] = $value;
}


Я предполагаю ответ на поверхности, но я его что-то не вижу.
Обшарил уже много папок, не понимаю где заложена html структура, где прописаны мета теги и т.д.

Я раньше пользовался adminizer'ом, так там в индексе были прописаны require на части страницы.
Header, head_styles, footer и т.д. И собственно в них редактировался весь код.
Здесь же что-то непонятно где ОНО лежит.

Не в сети

#6 01.05.2013 17:45:12

medar
Откуда: Москва
Сообщений: 36

Re: Перенос сайта на Lavarel

Вы собрались разбираться в фреймворке с нуля путем анализа index.php и последовательности выполнения ? Похвально, но это сизифов труд. Обычно для таких целей юзают документацию. В частности, http://laravel.com/docs/views. HTML страниц находится в application/views

Изменено medar (01.05.2013 17:56:27)

Не в сети

#7 01.05.2013 18:21:22

Re: Перенос сайта на Lavarel

Спасибо!

Не в сети

#8 01.05.2013 20:37:30

Re: Перенос сайта на Lavarel

Со структурной частью более менее разобрался.
Позволю себе задать ещё один вопрос.

У меня есть index.php - в нем записан короткий код, который каким-то (немыслимым для меня) образом открывает мне страницу /application/views/index/template.blade.php
Ну и там подключаются внутри неё другие страницы, библиотеки и т.д. С этим уже более менее понятно.

А если теперь я хочу создать, например, страницу с контактами. Ну т.е. конкретно contacts.php.
Я конечно могу её положить в public рядом с index.php и она будет работать. Но чтобы мне подключать те же скрипты, шапку, футер и т.д. мне нужно, чтобы этот contacts.php (опять же каким-то чудотворным образом) выводил меня на какой то другой шаблон.
Т.е. код должен быть похож (как я интуитивно догадываюсь) на код index.php, но должна быть конкретная разница, чтобы открывался не template.blade.php, а другая страничка.
Как мне это сделать?
Я понимаю, что если бы я понимал всю механику этого процесса, то таких бы вопросов у меня не возникло, но к сожалению я её пока не до конца понимаю.

Ещё раз заранее благодарен за ответы.

Не в сети

#9 02.05.2013 14:54:55

medar
Откуда: Москва
Сообщений: 36

Re: Перенос сайта на Lavarel

Мне кажется, не разобрались.

Программирование на фреймворках сильно отличается от программирования на голом php. Это там у вас каждая страница сайта - отдельный файл, здесь же такой подход будет неверным. Все запросы приходят на index.php, а дальше роутер фреймворка разбирает пришедший урл и вызывает нужный controller с нужным action. Контроллер при помощи модели достает данные и рисует html при помощи подсистемы вывода (views).
В Ларавеле контроллер можно не использовать, все сделать внутри роутера, но общая концепция осталась той же. Так работают все MVC-фреймворки (а не-MVC фреймворков для веба, кажется, вообще не бывает).

Прочтите руководство фреймворка еще раз с начала, посмотрите обучающие видео, например http://youtu.be/Zz_R73eW3OU

Не в сети

Подвал раздела