Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Добрый день!
Задам, наверное, очень глупый вопрос, но тем не менее не получается разобраться иначе.
У меня есть сайт, состоящий из двух страничек (к примеру). Как мне перенести его на среду 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)
Не в сети
Не в сети
Вопрос заключает в том, откуда берётся весь фронтенд?)
Я вижу, есть папки (в public) с сss, с js, с изображениями. Ну видимо эти вещи он оттуда и берёт, это понятно.
Но откуда берётся вся html структура? С блоками, списками, классами?) Где это всё?)
Не в сети
Не в сети
Не вижу нигде там 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 и т.д. И собственно в них редактировался весь код.
Здесь же что-то непонятно где ОНО лежит.
Не в сети
Вы собрались разбираться в фреймворке с нуля путем анализа index.php и последовательности выполнения ? Похвально, но это сизифов труд. Обычно для таких целей юзают документацию. В частности, http://laravel.com/docs/views. HTML страниц находится в application/views
Изменено medar (01.05.2013 17:56:27)
Не в сети
Спасибо!
Не в сети
Со структурной частью более менее разобрался.
Позволю себе задать ещё один вопрос.
У меня есть index.php - в нем записан короткий код, который каким-то (немыслимым для меня) образом открывает мне страницу /application/views/index/template.blade.php
Ну и там подключаются внутри неё другие страницы, библиотеки и т.д. С этим уже более менее понятно.
А если теперь я хочу создать, например, страницу с контактами. Ну т.е. конкретно contacts.php.
Я конечно могу её положить в public рядом с index.php и она будет работать. Но чтобы мне подключать те же скрипты, шапку, футер и т.д. мне нужно, чтобы этот contacts.php (опять же каким-то чудотворным образом) выводил меня на какой то другой шаблон.
Т.е. код должен быть похож (как я интуитивно догадываюсь) на код index.php, но должна быть конкретная разница, чтобы открывался не template.blade.php, а другая страничка.
Как мне это сделать?
Я понимаю, что если бы я понимал всю механику этого процесса, то таких бы вопросов у меня не возникло, но к сожалению я её пока не до конца понимаю.
Ещё раз заранее благодарен за ответы.
Не в сети
Мне кажется, не разобрались.
Программирование на фреймворках сильно отличается от программирования на голом php. Это там у вас каждая страница сайта - отдельный файл, здесь же такой подход будет неверным. Все запросы приходят на index.php, а дальше роутер фреймворка разбирает пришедший урл и вызывает нужный controller с нужным action. Контроллер при помощи модели достает данные и рисует html при помощи подсистемы вывода (views).
В Ларавеле контроллер можно не использовать, все сделать внутри роутера, но общая концепция осталась той же. Так работают все MVC-фреймворки (а не-MVC фреймворков для веба, кажется, вообще не бывает).
Прочтите руководство фреймворка еще раз с начала, посмотрите обучающие видео, например http://youtu.be/Zz_R73eW3OU
Не в сети
Страницы 1