Laravel по-русски

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

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

#102 Re: Laravel 3 » Как передать изображение в ссылку Blade » 24.07.2013 17:13:52

umarov пишет:

Искал, но не так как нужно видимо

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

#103 Re: Laravel 3 » Как передать изображение в ссылку Blade » 24.07.2013 17:09:33

umarov пишет:

А на мой вопрос не ответишь?

Ребята, обычно. перед тем как задавать вопрос, мне кажется не трудно ответ на ваш вопрос поискать в гугле .
А вот если не нашли или не поняли, при этом указав, вот нашол или не нашол, помогите...
А так - считаю тупые вопросы задаются. Извините. если обидел кого.

#106 Re: Прочее » Laravel 3 vs 4 » 19.07.2013 14:52:55

devpilgrim пишет:

Вы меня не много не правильно поняли

Я понял вас прекрасно, немного просто утрировал smile

devpilgrim пишет:

Подход: накидал модулей, прикрутил, вот вам супер cms - а дальше разбирайтесь сами... Думаете на L4 это не возможно?
Вообще запросто. Даже мозги включать не нужно...

хотелось бы верить.
Вообще. на  CMS я думаю делаются более стандартные задачи. И в основном в CMS мы задачу подстраиваем под функции и структуры, а не наоборот.

#107 Re: Общий раздел » Пакет Aidkit » 19.07.2013 08:24:08

Вот всегда смотрю на подобные вещи и задумываюсь, кто и как применяет такого плана расширения?
Скажу за себя - скачаю. поковыряю, возьму понравившийся идеи и даже куски кода, но вот использовать на прямую в проекте даже не могу сообразить как. По любому у вас полно других критерий и получается или нужно подстраиваться под под существующее расширение или переписывать на своё лад. Поэтому как для меня, больше потеря времяни , чтобы разобраться и подстроиться. чем написать с нуля с своими заготовками.
Как для меня, захожу на themeforest , качаем понравившеся - часик работы и каркас будут готовый.

Хотя признаюсь, люблю разные расширения в том плане, что люблю их поковырять smile

#108 Re: Прочее » Laravel 3 vs 4 » 19.07.2013 08:13:54

Proger_XP пишет:

Со мной всё ясно, по крайней мере пока

Оказывается не только у меня такие мысли, даже немного успокаивает smile

@devpilgrim - во многом с вами согласен. Вот сейчас в основном в поиске, выдаёт всю информацию по L4, хотя запрос строите целеноправленный по L3. И многие могут сказать, что L4 больше стали пользоваться? Возможно так и есть, но не настолько чтобы поисковые запросы подавлять. А как моё личное мнение, просто на L3 задавали меньше вопросов, так как вы сами ответили: -

devpilgrim пишет:

Могу подтвердить L-3 проще для понимания.

................

devpilgrim пишет:

В L4 по идее вообще не нужно никуда вникать, кроме как в приемы подключения модулей.

- даже не знаю как прокомментировать, но я лично не соглашусь с вами, вникать нужно везде. Ну и в L3 тоже есть не мало пакетов (Bundles).

Есть такое понятие - парог вхождения. Ещё раз повторюсь, что именно простота в L3 меня и покорила. Хотя и L4 даётся в изучении уже не плохо. Честно говоря. тесты на HelloWord - это ни о чём не говорят, если появиться минутка, создам у себя на VPS L4 и L3 с похожим функционалом (даже есть наработки, так как делать начал в L4 и перевёл на L3) и выложу здесь тест.

Пока ни одного аргумента весомого я не услышал, хотя есть весомый аргумент - развитие системы, не хотелось бы замыкаться в своём мире smile.
Но на данный момент я пока скажу как

Proger_XP пишет:

Со мной всё ясно, по крайней мере пока

на L3, хоть и за развитием L4 наблюдаю.

#109 Re: Laravel 4 » [L4] Проблема с почтой » 17.07.2013 15:24:52

jentix пишет:
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!');
});

#110 Прочее » Laravel 3 vs 4 » 16.07.2013 08:28:18

Artdevue
Ответов: 6

Привет всем.
Наверное многии задумывались над таким вопросом, но вот ответа вменяемого я так не нашол.
Я новичок в 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 меня не сильно воодушевил sad.
На оф сайте, документацию убрали по версии 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/ )
тестировались дефолные версии.

LARAVEL 3 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)
LARAVEL 4 BETA 4 BENCHMARK
$ 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 и будет золотая середина.

#111 Re: Laravel 3 » Cache » 20.04.2013 23:35:45

Спасибо Proger_XP за замечания.

#112 Re: Laravel 3 » Cache » 20.04.2013 07:37:10

Раз начал эту тему, то выкладываю исходник, может кому пригодиться
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/'.

#113 Re: Laravel 3 » Cache » 18.04.2013 13:50:15

Спасибо, так и сделал, просто скопировал стандартный драйвер фаловый, переименовал, добавил свои хотелки, зарегистрировал и по дефолу его установил в настройках. Теперь если даже буду использовать ключь /папка/подпапка/ключ, то при использовании APC к примеру у меня сохраняет с названием /папка/подпапка/ключ , а при файловом кэше, просто разбиваю на массив строку по слешу "/" и сохраняю по папкам и название.
Кстати, в стандартном драйвере слеш в названии не прокатывает именно для файлового драйвера.
В общем пока удолетворён, а то немного растроелся изначально. smile
Ещё раз спасибо за ваши ответы.

#114 Re: Laravel 3 » Cache » 17.04.2013 19:32:39

Спасибо за ответ Proger_XP,

Proger_XP пишет:

...кроме файлового там есть СУБД и NoSQL (Redis/Memcached). У них плоская структура, видимо поэтому и файловый кэш сделали плоским.

Это не причина, так как зависимость всё равно строится по ключу названия (которое можно шифровать как для примера) и по ключу самого кэша, которое имет вид /folder/subfolder/.
Теперь, если это файловый кэшь, то с ключа кэша строиться структура папок, если это к примеру APC, то ключь кэша будет добавляться в начало ключа названия кэша.
И теперь только логика будет спасать нас.

Proger_XP пишет:

Я не думаю, что стоит вручную передавать путь, куда нужно сохранить файл — проще сделать это автоматически:

$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 (плоском кэше). Т.е. можно строить зависимости кэша и связи.

С ответа понял, что здесь пляшет каждый как хочет smile И в 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);

не правильно, или как?

#115 Laravel 3 » Cache » 17.04.2013 00:30:29

Artdevue
Ответов: 7

Всем привет.
Немного погуглил, но решения пока не увидел, возможно плохо искал.
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.
Практически всё получается, но чувствую, что я чего-то не то наворотил и есть более изящные методы на которые я ещё не нашел ответ.
Прошу помощи профи, куда рыть?

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