Laravel по-русски

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

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

#1 Re: Общий раздел » HTMLki - сложные шаблоны с простым синтаксисом » 21.03.2013 18:41:11

Rush пишет:

какой-то треш. не знаю почему вы считаете что это проще и удобней. я за пхп

А в чем треш?
Вы сможете на пхп сделать то же самое проще и понятнее?
Ну тогда пример кода в студию!

Здесь же изменили поведение существующего щаблона минимальным вмешательством. По моему неплохо.
Надо почитать доки по этому шаблонизатору.
Привлекает что он не портит HTML. А как валидаторы отзываются на шаблоны HTMLki? Кто нибудь пробывал их подсовывать для валидации???

#2 Laravel 4 » Первая бета Laravel 4 » 26.01.2013 20:12:01

OrlandoST
Ответов: 17

Вышла первая бета Laravel 4.
Ссылка на документацию тут
Предлагаю всем желающим качать, ставить, изучать и обмениваться мнениями

#3 Re: Общий раздел » Lara_admin & Resizer - как сделать предпросмотр изображений в админке? » 17.01.2013 13:09:49

это понятно, как его применять и куда лепить, что-то я вообще по мелочи и не соображу… фрейм только начал изучать…

вот с этим сложнее ☺
Сейчас стал разбираться, и понял что все не так просто.
Можешь прислать мне код модели в которой ты хочешь реализовать отображение превью?

ЗЫ. В общем после некоторых раздумий пришел к выводу, что самым оптимальным будет следующий вариант: В модели переопределяешь __get(). Если имя атрибута равно ’images’, то отдаешь обернутые тегом <img> данные. Причем имя файла используешь для превью. В остальных случаях просто вызываешь parent. Имхо самый оптимальный вариант.

#5 Re: Общий раздел » Lara_admin & Resizer - как сделать предпросмотр изображений в админке? » 16.01.2013 20:50:01

Как вывести изображений в админке чтоб вместо images: 9421c1f6595b3f5ff0affc2d5ed5a175d128f6eb.jpg была превьюшка которая уже загружена?

Во view надо использовать ImageHelper для вывода нужного размера изображения PHP{{ ImageHelper::getSizePath$image_name'small' ) }}

Как то так. Сам не делал подобного.
Насколько я понял файлы по размерам сохраняются в виде PHP$filename$size/$filename_$size.$ext
Где PHP$size 'small', в твоем случае
Вообще в ImageHelper всего одна функция. Я думаю разберешься ☺

#6 Re: Laravel 3 » Не ест URL-кодированные символы » 14.01.2013 17:14:51

Ну я Ko3 еще использую. Мне нравится.
Еще смотрю в строну Lithium. Там есть на что посмотреть ☺

#8 Re: Laravel 3 » Вопрос по HMVC » 14.01.2013 10:34:50

Печально будет если laravel 4, не будет позволять это все делать, на сколько я понял там бандлов не будет, а библиотеки будут устанавливаться через Composer. Тоже удобно конечно. Но мне как любителю HMVC это не по душе, хотя я думаю гибкость останется и все же получится раскидать это все по отдельным папкам.

А в чем прелесть HMVC?? Во внутренний вызовах? Не вижу смысла заново инициировать весь процесс роутинга и инициализации приложения, если можно напрямую вызвать нужный экшн, который вернет нужный результат. Имхо вообще вызывать экшены из других экшенов не комильфо. Это по умолчанию функции для вызова пользователем. По мне это архитектурная ошибка так делать. Но может быть я чего-то недопонимаю.

#9 Re: Laravel 3 » Нормальные имена при валидации. Как? » 14.01.2013 10:29:20

Ну и еще вопрос по валидации, есть ли тут возможность вызывать функции которые возвращают не только true|false а которые бы обрабатывали поля как-ниудь. Например. Поле ввода адреса сайта. Оно проверяет есть ли там http:// и если нет то добавляет. А потом я использую что нибудь типа.
$url=$validation->get_value(’url’);
И у меня там уже измененое значение. Ну или чтоб оно сами $inputs редактировало.

P.S. Когда уже призы будут самым активным участникам форума)??

Я думаю это не DRY заставлять валицацию изменять входные данные.
Этим должна заниматься модель.
А так никто не запрещал расширять Validator.
В собственных функциях валидации 4 параметром передается this, что дает доступ к свойству $attributes текущего экземпляра Validator. Там и можно менять данные. Потом обращаться к ним через PHP$validator->attributes['attr_name'];

#10 Re: Laravel 3 » Не ест URL-кодированные символы » 13.01.2013 21:18:42

Вот теперь еще кроме родных багов и баги от симфони в наследство достаются. Надо написать разрабам — пусть обновят в ближайшем релизе HTTPFoundation. А может критическая масса багрепортов накопится, и откажутся от HTTPFoundation ;)

#11 Re: Laravel 3 » Как очистить память при использовании Eloquent ORM » 13.01.2013 21:08:40

Я у себя тоже оставил в конфиге, хоть и изучал все конфиги сначала. Но при знакомстве с Laravel подумал что мне это пригодится для изучения и благополучно забыл. Ну и это все в рабочий конфиг перекочевало благополучно!

Так что спасибо! Избавили от плясок с бубнами ☺

#12 Re: Laravel 3 » Не может найти родтельский контроллер, хотя он есть » 13.01.2013 21:01:06

Попробуй родительский контроллер назвать Admin_Base_Controller и положи его в папку admin
И все остальные контроллеры наследуй от него

#13 Re: Laravel 3 » Вопрос по HMVC » 13.01.2013 20:52:47

Хочется всё же, чтобы усилия сообщества были направлены на что-то одно. Правда, судя по всему сам я на L4 так и не перейду… Будет видно, когда они его официально выпустят

Я что-то не нашел описания чего ждать от Laravel4. Ткнешь носом в ссылку?? Очень хочется посмотреть

#14 Re: Laravel 3 » Вопрос по HMVC » 13.01.2013 20:50:43

Я где то видел бандл для реализации HMVC. Можно посмотреть в этом направлении.

#15 Re: Laravel 3 » Eloquent ORM проблема со связью many to many » 05.01.2013 10:23:28

В start.php добавил строку:
PHPLaravel\Database\Eloquent\Pivot::$timestamps false теперь все хорошо.
Можно конечно и в 1-M\laravel\database\eloquent\pivot.php переопределить PHPpublic static $timestamps, тоже работает)
Для моих целей поля `created_at` и `updated_at`не нужны вовсе.

Менять код ядра это не совсем ООП подход. Потом забудешь что поменял, и при обновлении версии ядра получишь пляски с бубнами ☺
Первый вариант имхо лучше

#16 Re: Прочее » Обсуждение нативных фреймворков (Phalcon и др.) » 02.01.2013 16:21:16

На FastCGI действительно многие перешли, связка nginx+php_fpm на моих сайтах дала увеличение производительности в 10 раз по сравнению с Apache+mod_php, как я уже писал выше.

И в этом случае преимущества Phalcon стремятся к нулю ☺

Если учесть, что проектам альтернативных серверов (lighttpd, nginx и пр.) около 10 лет, и они сравнительно недавно стали теснить Apache — то что уж говорить про переход на FastCGI? Принцип «не трогай, пока работает», очень силён, а в некоторых случаях не лишён смысла.

Я к тому, что проблемы 90% сайтов это слой работы с БД. И первым делом оптимизацию надо начинать с этого. А в фальконе этот слой никак не улучшается. И в принципе никак не может быть улучшен.
Код ядра не покроет всех нужд, поэтому по любому будем тянуть свои/чужие модули на PHP, что снижает выигрыш во время инициализации.
Проблемы с инициализацией можно частично победить ядром в виде phar архива. Тогда не нужно будет тянуть кучу файлов при старте скрипта. Ну или fpm. Я просто не вижу задач, которые бы не решались другими способами. А минусы очень явные — усложнение разработки (прежде всего для крупных проектов), усложнение отладки. Зачем мне еще один черный ящик поверх PHP??

#17 Re: Прочее » Обсуждение нативных фреймворков (Phalcon и др.) » 02.01.2013 13:47:05

Не совсем. В целом любой скрипт, если это не голый PHP с сотней строк в одном файле, работает в десятки раз медленнее отдачи статики самим сервером, что понятно. Такие фреймворки, как Phalcon, пытаются уменьшить эту разницу — не за счёт ускорения выполнения в узких местах (многопоточность), а за счёт повышения общей скорости работы, в данном случае передвинув весь фреймворк (который обычно подключается из скриптов и обрабатывается PHP до того, как собственно сама страница начнёт генерировать содержимое) в уже скомпилированный баайт-код, причём не PHP-шный, а платформенный. Понятно, что скорость инициализации такой страницы стремится к нулю.

Ну если бы инициализация была самым узким местом, то все бы давно на Fast CGI перешли, а этого нет.
И потом код ядра это же еще не все. Будет куча сторонних (или своих) модулей. Их тоже компилировать?
Тогда уж проще Hip Hop PHP использовать.

#18 Re: Прочее » Обсуждение нативных фреймворков (Phalcon и др.) » 29.12.2012 08:20:37

Ну почему же, очень даже. Касательно Phalcon, там полностью открытый исходный код, скачивайте с github, анализируйте, вносите предложения. ☺

Вот и получается, что для «разгребания» проблем, мне понадобится знание двух языков — С и PHP. А для полноценного тестирования своих «изменений» понадобится постоянная перекомпиляция кода ядра фреймворка. Что несколько усложняет разработку. Также усложняется и отладка. Мне два отладчика одновременно нужно запустить для полноценной отладки. Все идут к тому, чтобы и на сервере, и на фронтенде один язык использовать, а тут наоборот — еще один язык добавляем. Причем компилируемый.
Я не против таких фреймворков. Но тут надо понимать, что ты очень сильно завязан на мастерство разработчиков.
И потом основным узким местом большинства веб-приложений является уровень работы с БД. А это уже модуль, написанный на С. Все остальное — вопрос качества кода и грамотной системы кеширования. Этот фреймворк не дает решений для «узких» мест PHP — асинхронности и многопоточности. Так что я не вижу для чего усложнять себе жизнь.
Я лучше предпочту единую стилизацию кода, автоматическую общую документацию через PHPDoc, прелести автоподстановки и поиска по классам ядра в IDE.

#19 Re: Laravel 3 » Eloquent ORM проблема со связью many to many » 25.12.2012 21:31:33

Мне тоже совершенно не понятно, зачем всю эту муть её тянуть — стиль написания совершенно другой, кода в объёме намного больше и его сложнее понять из-за тучи методов getXXX, prepareXXX и т.п. Не спорю, что она может быть более универсальной, в ней меньше ошибок и т.п., но в моих глазах этот аргумент не перевешивает минус за её громоздкость.

Но это остаётся на совести авторов Laravel.

Возможно откажутся в поздних версиях. По мне код явно чужероден для Laravel. Надо поднять вопрос на англоязычном форуме.

#20 Re: Laravel 3 » Eloquent ORM проблема со связью many to many » 25.12.2012 21:26:57

Спасибо всем за грамотные советы. Теперь для меня кое-что прояснилось. Надеюсь у меня тоже в скором времени будет получатся разбираться в исходниках ядра Laravel.

Да не за что! Надеюсь помогли хоть советы то??
И вообще надо русское сообщество развивать, так что не стесняйтесь задавать вопросы!
Искать решение чужих проблем это тоже способ изучения фреймворка ;)

#21 Re: Laravel 3 » Eloquent ORM проблема со связью many to many » 25.12.2012 14:49:16

Proger_XP пишет:

Ого, похоже у нас появился участник, который не брезгует заглядывать в исходники Laravel. Так держать smile

Я в Laravel новичек, поэтому приходится заглядывать. Кстати код прекрасно структурирова и документирован.
Программирую на Kohana, уже привычка выработалась к некоторым решениям. А здесь еще не совсем понял логику разработчиков. Хотя то, что вижу, мне пока нравится.

Вот не совсем понял чем было вызвано решение использовать HTTPFoundation.

#22 Re: Laravel 3 » __construct vs nest » 24.12.2012 19:12:34

%Поставил __construct

PHP
public function __construct()
{
    
$this->filter('before''auth')->only(array('profile'));
}

и тут понеслась: Call to a member function nest() on a non-object, без __construct работает все норма, что может быть?

Чтобы такого не было нужно сначала вызвать конструктор родительского класса. Тогда свойство layout проинициализируется. И все должно заработать

#23 Re: Laravel 3 » Eloquent ORM проблема со связью many to many » 24.12.2012 13:47:15

Отменить их для одних, оставив для других, простым образом нельзя, но можно наследовать новый класс отношения has_many_and_belongs_to и в нём перекрыть метод pivot(), который создаёт модель промежуточной таблицы конкретно для этого отношения.

Можно сделать достаточно простым способом. Просто для тех отношений где эти поля нужны, указывать их в явном виде:

PHP
return has_many_and_belongs_to->with(array('created_at''updated_at'))

А при вставке указывать вторым атрибутом наши поля

PHP
$model->many_relation->insert(<массив полей для вставки в модель>, <массив для вставки в Pivot>)

#24 Re: Laravel 3 » Eloquent ORM проблема со связью many to many » 24.12.2012 13:34:05

Если в промежуточную таблицу добавить следующие поля:

sql`created_at` datetime DEFAULT NULL,
`updated_at` datetime DEFAULT NULL,

То все хорошо ☺.

Но хотелось бы разобраться почему так? Ведь в обоих моделях переопределено свойство PHPpublic static $timestamps false И таблицы не содержат полей created_at, updated_at. Подскажите как правильно сделать? Нужна ли модель описывающая промежуточную таблицу?

Вот кусок кода из ядра Eloquent:

PHP
public function __construct($model$associated$table$foreign$other)
    {
        
$this->other $other;

        
$this->joining $table ?: $this->joining($model$associated);

        
// If the Pivot table is timestamped, we'll set the timestamp columns to be
        // fetched when the pivot table models are fetched by the developer else
        // the ID will be the only "extra" column fetched in by default.
        
if (Pivot::$timestamps)
        {
            
$this->with[] = 'created_at';

            
$this->with[] = 'updated_at';
        }

        
parent::__construct($model$associated$foreign);
    }

А в модели Pivot по умолчанию стоит

PHP
 public static $timestamps true;

Я думаю можно смело поменять на false, даже не заморачиваясь.

#25 Re: Laravel 4 » Полезные ресурсы и ссылки » 23.12.2012 22:46:02

Maks пишет:

Если умеете читать по-английски, тогда вот еще ссылочка на мой блог:
http://maxoffsky.com

Вот темы которую я пишу на блоге:
Backbone + Laravel
Creating a Laravel blog
Etc,

Также вводный курс со множеством бесплатного контента:
http://www.udemy.com/develop-web-apps-w … framework/

Нет планов на русский свой туториал перевести???
Все-таки в рунете дефицит материалов по Laravel

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