Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Шпаргалка по Laravel 4 http://cheats.jesse-obrien.ca/
Искал, но не так как нужно видимо
Окей , ну, тогда хотя бы про это упомянули, что искал и не нашол... Просто часто задают вопросы даже не пробуя найти ответ в инете.
А на мой вопрос не ответишь?
Ребята, обычно. перед тем как задавать вопрос, мне кажется не трудно ответ на ваш вопрос поискать в гугле .
А вот если не нашли или не поняли, при этом указав, вот нашол или не нашол, помогите...
А так - считаю тупые вопросы задаются. Извините. если обидел кого.
https://github.com/laravel/laravel/issues/1297
Я бы создал свой Хелпер и написал там свою функцию.
http://phpassist.com/ - есть Laravel
Вы меня не много не правильно поняли
Я понял вас прекрасно, немного просто утрировал
Подход: накидал модулей, прикрутил, вот вам супер cms - а дальше разбирайтесь сами... Думаете на L4 это не возможно?
Вообще запросто. Даже мозги включать не нужно...
хотелось бы верить.
Вообще. на CMS я думаю делаются более стандартные задачи. И в основном в CMS мы задачу подстраиваем под функции и структуры, а не наоборот.
Вот всегда смотрю на подобные вещи и задумываюсь, кто и как применяет такого плана расширения?
Скажу за себя - скачаю. поковыряю, возьму понравившийся идеи и даже куски кода, но вот использовать на прямую в проекте даже не могу сообразить как. По любому у вас полно других критерий и получается или нужно подстраиваться под под существующее расширение или переписывать на своё лад. Поэтому как для меня, больше потеря времяни , чтобы разобраться и подстроиться. чем написать с нуля с своими заготовками.
Как для меня, захожу на themeforest , качаем понравившеся - часик работы и каркас будут готовый.
Хотя признаюсь, люблю разные расширения в том плане, что люблю их поковырять
Со мной всё ясно, по крайней мере пока
Оказывается не только у меня такие мысли, даже немного успокаивает
@devpilgrim - во многом с вами согласен. Вот сейчас в основном в поиске, выдаёт всю информацию по L4, хотя запрос строите целеноправленный по L3. И многие могут сказать, что L4 больше стали пользоваться? Возможно так и есть, но не настолько чтобы поисковые запросы подавлять. А как моё личное мнение, просто на L3 задавали меньше вопросов, так как вы сами ответили: -
Могу подтвердить L-3 проще для понимания.
................
В L4 по идее вообще не нужно никуда вникать, кроме как в приемы подключения модулей.
- даже не знаю как прокомментировать, но я лично не соглашусь с вами, вникать нужно везде. Ну и в L3 тоже есть не мало пакетов (Bundles).
Есть такое понятие - парог вхождения. Ещё раз повторюсь, что именно простота в L3 меня и покорила. Хотя и L4 даётся в изучении уже не плохо. Честно говоря. тесты на HelloWord - это ни о чём не говорят, если появиться минутка, создам у себя на VPS L4 и L3 с похожим функционалом (даже есть наработки, так как делать начал в L4 и перевёл на L3) и выложу здесь тест.
Пока ни одного аргумента весомого я не услышал, хотя есть весомый аргумент - развитие системы, не хотелось бы замыкаться в своём мире .
Но на данный момент я пока скажу как
Со мной всё ясно, по крайней мере пока
на L3, хоть и за развитием L4 наблюдаю.
Mail::send('emails.welcome', $data, function($message) { $message->to('foo@example.com', 'John Smith')->subject('Welcome!'); });
как передать правильно адрес почты получателя переменной вместо строки foo@example.com
Как пример
$send['mail'] = 'foo@example.com';
$send['name'] = 'John Smith';
Mail::send('emails.welcome', $data, function($message) use ($send)
{
$message->to($send['mail'], $send['name'])->subject('Welcome!');
});
Привет всем.
Наверное многии задумывались над таким вопросом, но вот ответа вменяемого я так не нашол.
Я новичок в Laravel, и начал изучать этот фреймворк с третьей ветки.
Кратко, почему я выбрал Laravel. Я не гуру в программировании, работал в последнее время в основном с CMS, и даже писал расширения ( modxtalks.artdevue.com , like.artdevue.com , hitspage.artdevue.com и.т.д.), суть в принципе не в этом. Я ни один раз пытался изучить Yii так-же и другие фреймы рассматривал. но видимо моих знаний не хватало или терпения.
Но вот встретил Laravel (к стате топик нашол на хабре. и первый сайт по Laravel посетил http://laravel.ru/). После пару часов знакомства с фреймом, меня просто затянуло и даже через пару дней я набросал небольшой демо сайт http://diagnoz.artdevue.com/ - небольшое видео http://www.youtube.com/watch?v=pj70bC5RXAU
И вот вышел Laravel 4, новинки всегда радуют, и я это приветствую.
Но вот подход уничтожения ветки 3 меня не сильно воодушевил .
На оф сайте, документацию убрали по версии 3 (спасибо Proger_XP, что у на этом сайте сохранил а не последовал примеру оф. сайта), с гитхуба тоже с глаз убрали, в принципе можно откопать https://github.com/laravel/laravel/tree/v3.2.14 / но комминтеть или сделать форк у вас не получиться, это говорит о том, что v.3 похоронили.
Но на мой взгляд, думаю это зря (возможно я ошибаюсь).
Теперь немного конкретики. Немного поюзав L4, могу сказать одно - это не L3. И даже скажу так... если бы я познакомился с Laravel 4, то уверен, я бы так-же её про игнорировал как и остальные фреймы.
Я не хочу сказать, что все фреймы плохие, просто хотел отметить, что парог входа в L3 был очень низкий. Плюс ко всему Laravel 3 - был тот фрейм, который я искал, лёгкий, быстрый и простой. что уже про L4 я не скажу. L4 больше чем в два раза L3 как по объёму так и по рендеру. Для теста нашол такой тест (источник http://d2n.me/posts/laravel-3-vs-larave … benchmark/ )
тестировались дефолные версии.
$ ab -n 100 -c 10 http://laravel3.dev/
Server Software: nginx
Server Hostname: laravel3.dev
Server Port: 80
Document Path: /
Document Length: 1581 bytes
Concurrency Level: 10
Time taken for tests: 1.372 seconds
Complete requests: 100
Failed requests: 0
Write errors: 0
Total transferred: 250226 bytes
HTML transferred: 158100 bytes
Requests per second: 72.87 [#/sec] (mean)
Time per request: 137.231 [ms] (mean)
Time per request: 13.723 [ms] (mean, across all concurrent requests)
Transfer rate: 178.07 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 1
Processing: 72 131 21.1 130 182
Waiting: 72 131 21.1 130 182
Total: 72 132 21.0 130 182
Percentage of the requests served within a certain time (ms)
50% 130
66% 140
75% 150
80% 152
90% 155
95% 166
98% 181
99% 182
100% 182 (longest request)
$ ab -n 100 -c 10 http://laravel4.dev/
Server Software: nginx
Server Hostname: laravel4.dev
Server Port: 80
Document Path: /
Document Length: 8280 bytes
Concurrency Level: 10
Time taken for tests: 2.634 seconds
Complete requests: 100
Failed requests: 0
Write errors: 0
Total transferred: 874900 bytes
HTML transferred: 828000 bytes
Requests per second: 37.97 [#/sec] (mean)
Time per request: 263.351 [ms] (mean)
Time per request: 26.335 [ms] (mean, across all concurrent requests)
Transfer rate: 324.43 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 1
Processing: 50 255 46.3 260 341
Waiting: 50 255 46.2 260 341
Total: 51 255 46.3 260 341
Percentage of the requests served within a certain time (ms)
50% 260
66% 281
75% 291
80% 296
90% 306
95% 317
98% 320
99% 341
100% 341 (longest request)
Ниже приведена таблица сравнения после запуска тестов несколько раз (чем выше число, тем лучше):
╔═════════════════╦══════════════════╦═══════════════════════════════════╗
║ Laravel 3 ║ Laravel 4 Beta 4 ║ Laravel 4 Beta 4 (с compiled.php) ║
║ 73.74 [# / сек] ║ 34.14 [# / сек] ║ 37.93 [# / сек] ║
║ 70.76 [# / сек] ║ 33.74 [# / сек] ║ 36.72 [# / сек] ║
║ 74.06 [# / сек] ║ 32.87 [# / сек] ║ 36.65 [# / сек] ║
Как мы все видим. что Larave 3 больше чем в 2 раза быстрее L4.
Конечно в L4 напичкали очень много разных библиотек, это конечно отлично, но вопрос нужны ли они в каждом проекте?
В принципе такой вопрос. к чему и был создан данный топик.
1) Переубедите меня что использовать в проектах L4 лучше чем L3.
2) Что будет с L3? Мне напоминает ситуацию развития любой системы в принципе. С начало делаем супер, потом хотим как лучше, а получается как всегда. Возможно в L5 и будет золотая середина.
Спасибо Proger_XP за замечания.
Раз начал эту тему, то выкладываю исходник, может кому пригодиться
https://gist.github.com/artdevue/5424557
Можно установить по дефолу или вызывать через драйвер.
Что изменилось из стандартного драйвера? - работа с директориями.
Всё просто, в названии ключа, если указываете слешь, то кэшь будет записанн по папкам.
К примеру:
Cache::put('testik1/testik2/test3', 'Это тестовый кэш 2', 0);
сохранит файл с название test3.php в папке кэша и директории path('storage').'cache/testik1/testik2/' .
0 - время пожизненное (это из изменений)
Сразу вопрос возникнет. а почему я храню с разрешение .php? Ну. вопервых я не использую serialize, так как на больших файлах это забирает время, возможно для кого-то это не важный параметр, но была такая прихоть.
При сохранении кэша вышеуказанным способом, файл кэша примерно выглядет так
<?php return 'Это тестовый кэш 2';
если мы укажем время 60 минут к примеру, то так
<?php if(time() > 1366428043){return null;} return 'Это тестовый кэш 2';
Думаю здесь объяснять не нужно.
Остальное всё стандартное. единственное добавлась рекурсивное удаление не полностью кэша, а указанного каталога
Cache::flush('testik1/testik2');
Удалит все файлы и вложенные папки в директории path('storage').'cache/testik1/testik2/'.
Спасибо, так и сделал, просто скопировал стандартный драйвер фаловый, переименовал, добавил свои хотелки, зарегистрировал и по дефолу его установил в настройках. Теперь если даже буду использовать ключь /папка/подпапка/ключ, то при использовании APC к примеру у меня сохраняет с названием /папка/подпапка/ключ , а при файловом кэше, просто разбиваю на массив строку по слешу "/" и сохраняю по папкам и название.
Кстати, в стандартном драйвере слеш в названии не прокатывает именно для файлового драйвера.
В общем пока удолетворён, а то немного растроелся изначально.
Ещё раз спасибо за ваши ответы.
Спасибо за ответ Proger_XP,
...кроме файлового там есть СУБД и NoSQL (Redis/Memcached). У них плоская структура, видимо поэтому и файловый кэш сделали плоским.
Это не причина, так как зависимость всё равно строится по ключу названия (которое можно шифровать как для примера) и по ключу самого кэша, которое имет вид /folder/subfolder/.
Теперь, если это файловый кэшь, то с ключа кэша строиться структура папок, если это к примеру APC, то ключь кэша будет добавляться в начало ключа названия кэша.
И теперь только логика будет спасать нас.
Я не думаю, что стоит вручную передавать путь, куда нужно сохранить файл — проще сделать это автоматически:
$dir = substr(md5($key), 0, 2)
Всё в ручную тоже не сделаешь, ну и на автомате тоже не всё можно решить.
В вашем случае, или нужно будут рубить весь кэшь при маленьком пуке, или я не врубился значит.
Как для примера: файловый кэш:
->folder
->->subfolder
>->->$id
->->->->key
APC кэш:
/folder/subfolder/$id/key
key - ключь название, можео просто id, можно с префиксами или органиации своей логики, blog-md5($id_comment).
Теперь к примеру мы легко можем убить весь кэш который находиться по ключу кэша folder/subfolder/ или folder/ и.т.д, так-же и в APC (плоском кэше). Т.е. можно строить зависимости кэша и связи.
С ответа понял, что здесь пляшет каждый как хочет И в Laravel нету Using groups для этих целей, как для примера.
Тогда встречный вопрос, как вы бы изменяли $path файлового кжша?, ведь каждый раз делать подобное
if(self::$cachekey != '')
{
Cache::extend('new', function()
{
$kk = 'cache/'.ECache::$cachekey;
return new Laravel\Cache\Drivers\File(path('storage').$kk.DS);
});
}
Cache::driver('new')->put($key, $value, $minutes);
не правильно, или как?
Всем привет.
Немного погуглил, но решения пока не увидел, возможно плохо искал.
5 дней как изучаю (заодно и небольшую работу делаю) laravel и вот дошел до кэша.
Суть вопроса в организации кэша и зависимости.
К примеру возьмём файловый кэш, по дефолу всё летит в папку path('storage').'cache' , как для примера я организую каталог:
->0
->-> 0:1
->->->0:1:1
->->->0:1:2
->-> 0:2
->->->0:2:1
->->->0:2:2
->->->0:2:3
и.т.д
Всё бросать в одну папку, как-то не кэшерно, да и при большом количестве файлов в одной директории будут тормоза при работе с кэшем, плюс к примеру я добавил уровень 0:1:1. убил кэш 0:1:1, 0:1 и 0.
Вопрос в том, что я не нашол как этим всем управлять, единственное что пришло с лёту, это создать свой класс и типа переопределять настройки в зависимости от переданных данных, как пример
MyCache::cache_put($key, $value, $lifetime = 0, array('driver'=>'file','opt_cache_key'=>'dir/direct/directory'));
И уже в своём классе разруливать всё. т.е. в данном примере переопределять $path и $driver.
Практически всё получается, но чувствую, что я чего-то не то наворотил и есть более изящные методы на которые я ещё не нашел ответ.
Прошу помощи профи, куда рыть?