These are chat archives for LaravelRUS/chat

24th
Jul 2015
Alexander Popov
@ruelephant
Jul 24 2015 00:41
@IlyaVorozhbit а не просвятишь?
зачем в композере что-то подключать из стандартного неймспейса O_O
JhaoDa
@jhaoda
Jul 24 2015 00:42
@ruelephant он зависимость хочет указать
Alexander Popov
@ruelephant
Jul 24 2015 00:43
@jhaoda эм? O_O
JhaoDa
@jhaoda
Jul 24 2015 00:43
@ruelephant ты кофе не выпил, штоле?
Alexander Popov
@ruelephant
Jul 24 2015 00:43
да нет
JhaoDa
@jhaoda
Jul 24 2015 00:43
Или наоборот, выпил два литра?
Alexander Popov
@ruelephant
Jul 24 2015 00:43
просто класс илюминейт он же стандартный
всмысле неймспейс
JhaoDa
@jhaoda
Jul 24 2015 00:44
@ruelephant ты на скрин смотрел?
Что там рамочкой красной выделено?
Alexander Popov
@ruelephant
Jul 24 2015 00:44
версия
JhaoDa
@jhaoda
Jul 24 2015 00:44
@ruelephant бинго!
Alexander Popov
@ruelephant
Jul 24 2015 00:44
эм он использует фрейворк одной версии, но илюминейт другой?
JhaoDa
@jhaoda
Jul 24 2015 00:45
@ruelephant ппц...
ruelephant @ruelephant пока не вышел из режима отпуск
JhaoDa
@jhaoda
Jul 24 2015 00:45
Нет, он хочет, что бы его пакет ставился только на 5.1, например
Alexander Popov
@ruelephant
Jul 24 2015 00:47
а что нельзя указать зависимость сразу от фрейворка?
JhaoDa
@jhaoda
Jul 24 2015 00:47
@ruelephant пакет может без фреймворка работать. Не знал?
Alexander Popov
@ruelephant
Jul 24 2015 00:47
это странно
@jhaoda я же интерпрайз :) у меня что-то не возникало таких идеи как «пакет отдельно»
JhaoDa
@jhaoda
Jul 24 2015 00:48
Что странного? Я пишу пакет, он юзает два компонента из набора Illuminate, всё это я подключаю как какому-то самописному решению.
Нормальный же сценарий
Alexander Popov
@ruelephant
Jul 24 2015 00:49
странно
JhaoDa
@jhaoda
Jul 24 2015 00:49
@ruelephant новое слово выучил?:)
Alexander Popov
@ruelephant
Jul 24 2015 00:49
а что фрейворк не юзается получается?
как это?
JhaoDa
@jhaoda
Jul 24 2015 00:49
Слонопотамус, я не готов отвечать на такие вопросы в 8 утра
Alexander Popov
@ruelephant
Jul 24 2015 00:50
у нас 4 утра
JhaoDa
@jhaoda
Jul 24 2015 00:50
Я на них вообще не готов отвечать, но в 8 утра особенно
Alexander Popov
@ruelephant
Jul 24 2015 00:50
все нормально
ааа я же забыл
я то в отпуске O_O
у меня выходные всю неделю
JhaoDa
@jhaoda
Jul 24 2015 00:50
Потому что если ты не знал, что Ларавель это набор Illuminate-компонентов, то шо ты тут делаешь?
Alexander Popov
@ruelephant
Jul 24 2015 00:51
я знал что в ларавел есть набор иллюминайте компонентов
но я как то не думал их отдельно даже юзать O_o
JhaoDa
@jhaoda
Jul 24 2015 00:51
Ну вот, как много нового ты узнал в отпуске!
Alexander Popov
@ruelephant
Jul 24 2015 00:51
я просто обычно даже в код решения не смотрю
сразу юзаю как черный ящик
остальное проблемы разработчиков (c)
если что завести проблему на баг трекере
JhaoDa
@jhaoda
Jul 24 2015 00:54
@ruelephant я с тебя даже денег не возьму за просветление
Alexander Popov
@ruelephant
Jul 24 2015 00:55
@jhaoda я как то глянул что там внутри, ужас ужас :)
я не могу смотреть на такое
они использовали __CALL вместо наследования
еретики!
JhaoDa
@jhaoda
Jul 24 2015 00:55
Чо с тебя, нищебродского масковского, взять-то можно... крышечки от доширака?
Alexander Popov
@ruelephant
Jul 24 2015 00:55
вот куда RPS уходит
сволочи
Andrey Helldar
@andrey-helldar
Jul 24 2015 01:08

Всем привет!
Подскажите люди добрые, а то втупил в 9 утра((
В базе есть 2 таблицы, например:

table1
id
title
category

table2
id
category_name

Далее делаю запрос:

$content = \MYAPP\Table1::leftJoin('table2', 'table1.category', '=', 'table2.id')->get();

Во вьюхе через foreach:

@foreach($content as $cont)    
    <h1>{{ $cont->title }}</h1>
    {{ $cont->category_name}}
@endforeach

разумеется, получаю результат:

<h1>Первая категория</h1>
первая запись

<h1>Первая категория</h1>
вторая запись
...

А как составить запрос так, чтобы записи объединялись по категориям и на выходе получилось нечто вроде:

<h1>Первая категория</li>
первая запись
вторая запись
третья запись

<h1>Вторая категория</h1>
первая запись
вторая запись

?

Или подскажите какими словами ЭТО в гугле искать. А то ввожу в поиск всякую херню и, естесственно, всякую херню мне в ответ и предлагает...

Alexander Popov
@ruelephant
Jul 24 2015 01:13
элементарно!
просто проверяй, изменился ли $cont->title c прошлого раза
костыль но работать будет :)
Maxim
@Big-Shark
Jul 24 2015 01:15
а еще в коллекциях есть групировка
Alexander Popov
@ruelephant
Jul 24 2015 01:15
тсс
это не для 9 утра
пятницы...
Maxim
@Big-Shark
Jul 24 2015 01:15
8 утра(
Alexander Popov
@ruelephant
Jul 24 2015 01:16
у меня 4 утра и я не жалуюсь
Andrey Helldar
@andrey-helldar
Jul 24 2015 01:18

Брать все записи из таблицы table2 и по каждой записи гнать foreach на table1 это извращение.

Раньше на CMS делал по такому принципу (код кривой. Показываю суть):

$category_name = "";
$content = \MYAPP\Table1::leftJoin('table2', 'table1.category', '=', 'table2.id')->get();

foreach($content as $cont){
     if($category_name != $cont->category_name){
          echo "<h1>".$cont->category_name."</h1>";
          $category_name = $cont->category_name;
     }
     echo $cont->title;
}
@ruelephant у меня, к сожалению, так...(((
Alexander Popov
@ruelephant
Jul 24 2015 01:19
ну чувак, давай ты в спокойной обстановке вернешься к этому коду :)
в субботу
по идеи тебе надо юзать не ленивую загрузку
не сразу join, а по каждой категории отдельным запросом
получается так что в content только топовые категории
а потомков выбираешь через $cont->subcategory
Andrey Helldar
@andrey-helldar
Jul 24 2015 01:21
@ruelephant не, в субботу сплю)) тут на работе напрягают)) переключаюсь между двумя проектами, вот и втупил. 2*2 вычислить не могу...
Alexander Popov
@ruelephant
Jul 24 2015 01:22
красивый вариант выше написал
Andrey Helldar
@andrey-helldar
Jul 24 2015 01:22
@ruelephant это ты про "if($category_name != $cont->category_name){" ?
Alexander Popov
@ruelephant
Jul 24 2015 01:22
да
это не есть красиво :)
Andrey Helldar
@andrey-helldar
Jul 24 2015 01:24
@ruelephant и я о том же :)
Костыль на CMS юзал ибо лень было мудрить, а в случае с Ларой предпочитаю делать качественно) Ну, или пытаться качественно делать)) То бишь стараться обходиться без костылей
Alexander Popov
@ruelephant
Jul 24 2015 01:24
ну используй значит модели
делаешь две модели, делаешь связь
потом бежишь по топовой таблице, и внутри форыча еще форыч
который бежит уже по таблице 2
Andrey Helldar
@andrey-helldar
Jul 24 2015 01:25
Alexander Popov
@ruelephant
Jul 24 2015 01:26
на больших объемах будет тормозить
это же на «клиенте» группировка
всмысле постпроцессингом
Andrey Helldar
@andrey-helldar
Jul 24 2015 01:28
@ruelephant форыч внутри форыча.... представим, что у меня овер 100 категорий, в каждой из которых будет овер 1000 записей...
В каждой овер 100 категорий гнать форыч для получения записей подкатегорий - это ж кощунство...
Alexander Popov
@ruelephant
Jul 24 2015 01:29
ага! а получить все скопом и делать группировку на пыхе
это просто верх гениальности
учитывая как он тупо работает с массивами
Andrey Helldar
@andrey-helldar
Jul 24 2015 01:31
@ruelephant вот я и пытаюсь найти оптимальные варианты)
Пока что костыль "if($category_name != $cont->category_name)" более-менее адекватным кажется...
Alexander Popov
@ruelephant
Jul 24 2015 01:31
мой вариант оптимальнее по памяти будет
он будет выводить по 1 категории в память, потом сбрасывать и получать новый кусок
в твоем варианте с join он получит гиганскую лапшу в память
Andrey Helldar
@andrey-helldar
Jul 24 2015 01:33
вот и я говорю что мой вариант не вариант)
Alexander Popov
@ruelephant
Jul 24 2015 01:33
юзай мой вариант :0
если хочешь феншуй
или юзай любой свой
Alexander Popov
@ruelephant
Jul 24 2015 01:40
@AndreyHelldar я все варианты в свое время прощупал :)
Andrey Helldar
@andrey-helldar
Jul 24 2015 01:42
@ruelephant решил проверить. Сейчас создал 2 таблицы, в категории фейкером забиваю 1000 записей, а в подкатегории 100000 и буду смотреть время обработки по всем вариантам.
Тут отпишусь что получилось на выходе)
Alexander Popov
@ruelephant
Jul 24 2015 01:43
ну пиши пиши
я уже спать буду :)
Maxim
@Big-Shark
Jul 24 2015 01:56
Вот извращенцы
Alexander Popov
@ruelephant
Jul 24 2015 01:56
у вас конечно есть особый?
путь
Maxim
@Big-Shark
Jul 24 2015 01:57
да сделал групировку на пхп, и не паришься, сколько там будет по факту категорий, 10 штук, да еще 10 подкатегорий?
Alexander Popov
@ruelephant
Jul 24 2015 01:57
по факту мы уже тести на 1000 и по 100000
Maxim
@Big-Shark
Jul 24 2015 01:57
Да даже если 100, пхп не заметит разницу, значительный результат будет на 10-100 тысячах
но тут нужно исходить из реального вывода на страницу.
Alexander Popov
@ruelephant
Jul 24 2015 01:58
получается сейчас у нас 100000000
записей на группировку :)
я думаю пых не скоро такое переварит в массив
вытечет по памяти
Maxim
@Big-Shark
Jul 24 2015 01:58
вы реально будете выводить 10 млн записей?
Alexander Popov
@ruelephant
Jul 24 2015 01:58
сто
… миллионов записей
Maxim
@Big-Shark
Jul 24 2015 01:59
простите, 100 млн?
Alexander Popov
@ruelephant
Jul 24 2015 01:59
ну таковы условия теста :)
а вдруг?
Maxim
@Big-Shark
Jul 24 2015 01:59
и это все нужно на 1 страничке?
Alexander Popov
@ruelephant
Jul 24 2015 01:59
обсолютно
арфография сохранена
Maxim
@Big-Shark
Jul 24 2015 02:00
так вот и нужно делать не для "а вдруг", а для того что будет)
Alexander Popov
@ruelephant
Jul 24 2015 02:00
именно h1 в заголовке и дальше текст
повторить 100 миллионов ряз
@Big-Shark мы ушли в теортетические изыски
Andrey Helldar
@andrey-helldar
Jul 24 2015 02:03
@Big-Shark @ruelephant жду когда фейкер закончит заполнение базы)
Скоро проверим скорость работы
Alexander Popov
@ruelephant
Jul 24 2015 02:03
бгг
ruelephant @ruelephant стучится об мягкие стены
Alexander Popov
@ruelephant
Jul 24 2015 02:05
знаете, у меня появилась мечта
купить себе микшер для сведения двух каналов 3.5 мм
а то либо музыка, либо battlefield
Andrey Helldar
@andrey-helldar
Jul 24 2015 03:06

@ruelephant @Big-Shark Закончил тесты.
Миграции:

        Schema::create('table1', function(Blueprint $table) {
            $table->increments('id');
            $table->string('fio')->unique();
            $table->string('post');
            $table->string('phone');
            $table->integer('group');
            $table->integer('show')->default(1);
            $table->timestamps();
        });

        Schema::create('table2', function(Blueprint $table) {
            $table->increments('id');
            $table->string('title')->unique();
            $table->timestamps();
        });

Таблицы заполнены фейкером:

    public function run() {
        $faker = Faker\Factory::create();
        $cat_count = 1000;

        MYAPP\Table1::truncate();
        MYAPP\Table2::truncate();


        for ($i = 0; $i < $cat_count; $i++) {
            MYAPP\Table2::insert([
                'title' => $faker->company
            ]);
        }

        for ($i = 0; $i < 100000; $i++) {
            MYAPP\Table1::insert([
                'fio' => $faker->name,
                'post' => $faker->text(50),
                'phone' => $faker->phoneNumber,
                'group' => $faker->numberBetween(1, $cat_count)
            ]);
        }
    }

Далее выполняем код:

    public function index() {
        $export = "";

        /*
         * Block 1
         */
        $mt1 = microtime(true);
        $result = "";
        $content = \MYAPP\Table1::leftJoin('table2s', 'table1s.group', '=', 'table2s.id')->get();
        foreach ($content as $cont)
            $result .= '<h1>' . $cont->title . '</h1>' . $cont->fio . '<br>';
        $mt2 = round(microtime(true) - $mt1, 4);
        $export .= "List: {$mt2} (query: 1)<br>";

        /*
         * Block 2
         */
        $mt1 = microtime(true);
        $result = "";
        $category = "";
        $content = \MYAPP\Table1::leftJoin('table2s', 'table1s.group', '=', 'table2s.id')->get();
        foreach ($content as $cont) {
            $result.= $category != $cont->title ? $cont->title : "";
            $result .= $cont->fio . '<br>';
        }
        $mt2 = round(microtime(true) - $mt1, 4);
        $export .= "cat != table.cat: {$mt2} (query: 1)<br>";

        /*
         * Block 3
         */
        $mt1 = microtime(true);
        $result = "";
        $queries = 1;
        $content = \MYAPP\Table2::get();
        foreach ($content as $cont) {
            $result .= '<h1>' . $cont->title . '</h1>';

            $q = \MYAPP\Table1::whereGroup($cont->id)->get();
            foreach ($q as $row) {
                $result .= $cont->fio . '<br>';
                $queries++;
            }
        }
        $mt2 = round(microtime(true) - $mt1, 4);
        $export .= "foreach foreach: {$mt2} (query: {$queries})<br>";

        /*
         * Block 4
         */
        $mt1 = microtime(true);
        $result = "";
        $collection = collect([\MYAPP\Table1::leftJoin('table2s', 'table1s.group', '=', 'table2s.id')->get()]);
        $groupped = $collection->groupBy('title');
        $groupped->toArray();
        foreach ($groupped as $group_k => $group_v) {
            $result .= '<h1>' . $group_k . '</h1>';
            foreach ($group_v as $value) {
                $result .= $value->fio . '<br>';
            }
        }
        $mt2 = round(microtime(true) - $mt1, 4);
        $export .= "Collection: {$mt2} (query: 1)<br>";


        return view('page')->with('export', $export);
    }

Так как процесс занимает продолжительное время, проверял выполнение по каждому блоку отдельно по 5 раз каждый.

Результат вот:
alt

Maxim
@Big-Shark
Jul 24 2015 03:23
@AndreyHelldar попробуй еще 1 вариант, получения связаных категорий через with, а потмо через проверку ид, и уже вывод названия категории
Andrey Helldar
@andrey-helldar
Jul 24 2015 03:34
@Big-Shark не догнал) Гугл по запросу "laravel связанные таблицы" чет не то выдает
Maxim
@Big-Shark
Jul 24 2015 03:34
@AndreyHelldar with('')
Andrey Helldar
@andrey-helldar
Jul 24 2015 03:35
@Big-Shark вывод названия категории во вьюхе? Это имеешь ввиду?
То бишь в контроллере получаем список записей и передаем их во вьюху, а уже там производим обработку?
Если да, то получится как во втором блоке - тот же принцип.
Maxim
@Big-Shark
Jul 24 2015 03:38
@AndreyHelldar
нет, я имею ввиду не использовать джоин, а использовать 2 запроса, а там уже выводить как надо
Andrey Helldar
@andrey-helldar
Jul 24 2015 03:43

В контроллере:

$categories = \MYAPP\Table1::get();
$subcategories = \MYAPP\Table2::get();

return view('page')->with('categories ', $categories )->with('subcategories ', $subcategories );

Во вьюхе:

@foreach($categories as $cat)
     <h1>{{ $cat->title }}</h1>

     @foreach($subcategories as $subcat)
          @if($subcat->group == $cat->id)
               {{ $cat->fio }} <br />
          @endif
     @endforeach
@endforeach

@Big-Shark Это имеешь ввиду?

Maxim
@Big-Shark
Jul 24 2015 03:45
@AndreyHelldar нет, смотри with в элоквоент, а не во вью
Andrey Helldar
@andrey-helldar
Jul 24 2015 03:48
@Big-Shark чет подвис. В доке не нашел применение with http://laravel.com/docs/5.1/eloquent
Andrey Helldar
@andrey-helldar
Jul 24 2015 03:58

@Big-Shark выходит, что будет выполнено 2 запроса в базу и обе переменные будут содержать в себе все записи базы, и уже после этого с ними производятся действия.
Как вариант, можно пересобрать массив по типу:

$content[$category][] = $subcategory;

А во вьюхе через foreach foreach достать данные...
Так что ли? Или я опять чего не понимаю?

Maxim
@Big-Shark
Jul 24 2015 04:01
@AndreyHelldar типа того, только не все записи базы, первым вытаскиваем рут уровень, а вторым 1 уровень
Andrey Helldar
@andrey-helldar
Jul 24 2015 04:03

Или же заюзать код:

$content = MYAPP\Table1::with('table2s')->get();

И на выходе можем заюзать

foreach ($content as $cont) {
    echo $cont->table2s->title;
}
@Big-Shark ща доку перечитаю
Andrey Helldar
@andrey-helldar
Jul 24 2015 07:01

@Big-Shark

Итак, начнем:

В файл app\Table2.php пишу функцию:

public function categories() {
        return $this->hasMany(\MYAPP\Table1::class);
    }

В контроллере передаю во вьюху функцию:

return view('page')->with('cats', \MYAPP\Table2::get());

Вот и добрались до вьюхи page.blade.php:

@foreach($cats as $cat)
    @if($cat->categories->count())
    <h3>{{ $cat->title }}</h3>

    @foreach($cat->categories as $subcat)
    <li>{{ $subcat->fio }}</li>
    @endforeach
    @endif
@endforeach

Плагин "barryvdh/laravel-debugbar" выдал такой результат:
(P.S.: плагином проверена последняя строка. Остальные результаты более ранние)
alt

Плюс в том что в этом случае кода как такового практически нет - все лаконично, а форычы юзаются непосредственно во вьюхе.
За основу взял это видео
Andrey Helldar
@andrey-helldar
Jul 24 2015 07:07
P.S.: плагин показал, что страница захавала ~279 метров памяти.
Изменил размер базы - 100 категорий и 1000 подкатегорий:
101 запрос к базе, 2.19 сек выполнения при 13,5 метрах памяти
Dinar Garipov
@garf
Jul 24 2015 07:48
Привет всем.
Делал делал блог для себя 2 недели. И решил выложить на Гитхаб. Если вдруг кому-то будет интересно. :)
Vadim Shashin
@Enapiuz
Jul 24 2015 08:18
Всем привет. Такой вопрос, не могу в доке найти, у композера можно в конфиге сменить расположение lock-файла?
Maxim
@Big-Shark
Jul 24 2015 08:18
@Enapiuz нет
Vadim Shashin
@Enapiuz
Jul 24 2015 08:18
@Big-Shark спасибо, будем искать другие варианты)
Maxim
@Big-Shark
Jul 24 2015 08:22
@Enapiuz а в чем проблемма?
Vadim Shashin
@Enapiuz
Jul 24 2015 08:23
@Big-Shark да там у коллеги phpoffice/phpexcel постоянно ругается на cannot redeclare class и рандомный класс из либы. не ларавел, уже не знаем на что грешить
на сервере по пушу настроен composer install, но прав писать в репо нет, на все изменяющееся сделаны симлинки ведущие на директории выше
Maxim
@Big-Shark
Jul 24 2015 08:25
@Enapiuz чето странная проблемма, че у вас там на сервере настроено? выглядит как костыль
Vadim Shashin
@Enapiuz
Jul 24 2015 08:26
да там Идеальный Костыль практически все :)
я даже не уверен, мне админы делали composer install и еще что-то под проект на ларе, а на этом проекте может быть хоть update, там вообще страшно все
Maxim
@Big-Shark
Jul 24 2015 08:28
@Enapiuz может с этого и стоит начинать?
Soprun Vladislav
@vlsoprun
Jul 24 2015 08:52
@gaaarfild имеется ли в наличии ссылка?
Maxim
@Big-Shark
Jul 24 2015 08:53
@vlsoprun там же есть ссылка
Soprun Vladislav
@vlsoprun
Jul 24 2015 08:54
@Big-Shark http://your.host/root ?
Я имел в веду посмотреть не устанавливая к себе
Maxim
@Big-Shark
Jul 24 2015 08:55
@vlsoprun ааа, так просити демо, а то не понятно)
Soprun Vladislav
@vlsoprun
Jul 24 2015 08:55
@Big-Shark :smile:
Dinar Garipov
@garf
Jul 24 2015 08:55
@vlsoprun Ссылка на что? :)
Soprun Vladislav
@vlsoprun
Jul 24 2015 08:55
@gaaarfild на демку
Dinar Garipov
@garf
Jul 24 2015 08:55
@vlsoprun Ааа.
Пока нет.
Вот сейчас занимаюсь этим.
Soprun Vladislav
@vlsoprun
Jul 24 2015 08:57
Я просто в ближайшие бушующие начну писать блог/вопросы-ответы для своей компании.
Как раз мне очень интересны примеры ))
Dinar Garipov
@garf
Jul 24 2015 08:58
Ну, сегодня, надеюсь, размещу.
Maxim
@Big-Shark
Jul 24 2015 09:12
@gaaarfild а скрины есть?
Dinar Garipov
@garf
Jul 24 2015 09:19
Подожди минут 5. Даже блог дам ))
Dinar Garipov
@garf
Jul 24 2015 09:28
Пропиши в etc/hosts 93.171.202.163 0qa.ru
Ну и заходи на 0qa.ru
Soprun Vladislav
@vlsoprun
Jul 24 2015 09:32
@gaaarfild не могу авторизоваться в админку
Dinar Garipov
@garf
Jul 24 2015 09:33
пароль admin
Soprun Vladislav
@vlsoprun
Jul 24 2015 09:34
@gaaarfild меня немного смущает "0ez лучшая платформа для блогов на свете!" :smile:
Думаю проект только заграждается ))
Dinar Garipov
@garf
Jul 24 2015 09:36
Это просто накатано за 2 минуты ))
не обращай внимания ))
считай, что это самоирония :)
Soprun Vladislav
@vlsoprun
Jul 24 2015 09:36
:smile:
unlike777
@unlike777
Jul 24 2015 09:40
Привет всем
Soprun Vladislav
@vlsoprun
Jul 24 2015 09:40
@unlike777 привет
unlike777
@unlike777
Jul 24 2015 09:40
Есть вопросик по производительности
Maxim
@Big-Shark
Jul 24 2015 09:41
@unlike777 это в чат фалкона
Vlad Shcherbin
@VladShcherbin
Jul 24 2015 09:41
))
unlike777
@unlike777
Jul 24 2015 09:41
@Big-Shark =))))
уже позно на фалкон переходить =)
Dinar Garipov
@garf
Jul 24 2015 09:42
@unlike777 Задавай его ))
Все производительники приготовились :)
NelinD
@NelinD
Jul 24 2015 09:44
@gaaarfild вангую явление слона
unlike777
@unlike777
Jul 24 2015 09:45
Сайт уже находится на серваке, (sweb если точнее)
Есть страница товара, там довольно много циклов , ни то что прям дофига ну примерно циклов 50 поличлось
дебажу через debugbar
страница грузится 7 секунд
из них
booting 0.07s
app 7.22s
after 0.002s
sql отрабатывает за 0.032s
собственно втф?
вьюхи скомпилены все ок
Maxim
@Big-Shark
Jul 24 2015 09:45
ну все же понятно, гдето в апп проблемма.
unlike777
@unlike777
Jul 24 2015 09:45
^^
ага
Soprun Vladislav
@vlsoprun
Jul 24 2015 09:45
xD
NelinD
@NelinD
Jul 24 2015 09:46
@unlike777 есть подозрение что код на странице г.....
можно попробовать кэш
Maxim
@Big-Shark
Jul 24 2015 09:46
следуюший вопрос.
unlike777
@unlike777
Jul 24 2015 09:46
главная где циклов естесвенно меньше грузится за 0.5s
что тоже долго если честно
Dinar Garipov
@garf
Jul 24 2015 09:46
А ты не смотрел, может у тебя там lazy Load
используешь Eloquent?
unlike777
@unlike777
Jul 24 2015 09:46
да
не нету такого
Soprun Vladislav
@vlsoprun
Jul 24 2015 09:47
@unlike777 Наверное скажу глупость, может есть смысл убрать циклы в кэш?
Maxim
@Big-Shark
Jul 24 2015 09:47
@unlike777 а на серваке пентиум 133?
unlike777
@unlike777
Jul 24 2015 09:47
@Big-Shark sweb макс тариф
Maxim
@Big-Shark
Jul 24 2015 09:47
@vlsoprun урунду не говори) кэш еще использовать) 7 секунд нормальное время)
unlike777
@unlike777
Jul 24 2015 09:48
@Big-Shark xD
Maxim
@Big-Shark
Jul 24 2015 09:48
@unlike777 вообщем давай код, без него непонятно
Soprun Vladislav
@vlsoprun
Jul 24 2015 09:48
@Big-Shark xD
NelinD
@NelinD
Jul 24 2015 09:48
@Big-Shark готовимся, писят циклов
Maxim
@Big-Shark
Jul 24 2015 09:48
@unlike777 только на пасту, не засирай чат плиз)
unlike777
@unlike777
Jul 24 2015 09:49
говорю ничего особенного просто вложенных циклов многовато допустим 5 моделей товаров, в них может быть 3-5 размеров и 3-5 картинок
все
Soprun Vladislav
@vlsoprun
Jul 24 2015 09:49
....
unlike777
@unlike777
Jul 24 2015 09:49
ну главная грузится 0.5-1s а на ней пркатически галимая верстка
Dinar Garipov
@garf
Jul 24 2015 09:49
@unlike777 больше 3 вложений - уже шило.
Maxim
@Big-Shark
Jul 24 2015 09:49
@unlike777 ну тогда даже незнаю, но думаю проблемма в коде)
unlike777
@unlike777
Jul 24 2015 09:49
нет вложений 2
Soprun Vladislav
@vlsoprun
Jul 24 2015 09:49
@unlike777 Ты картинки где хранишь?
Dinar Garipov
@garf
Jul 24 2015 09:50
Ну значит проблема не в этом.
unlike777
@unlike777
Jul 24 2015 09:50
картинки на самом сервере, кешатся когда ресайзяться
NelinD
@NelinD
Jul 24 2015 09:51
'start_measure()', 'stop_measure()' спасут отца руской оптимизации
Dinar Garipov
@garf
Jul 24 2015 09:51
Ты ресайзишь их на лету?
unlike777
@unlike777
Jul 24 2015 09:52
да, на лету 1 раз потом картинка из кеша берется
Dinar Garipov
@garf
Jul 24 2015 09:52
Не надо этого делать. Лучше ресайзи при загрузке.
Maxim
@Big-Shark
Jul 24 2015 09:52
@unlike777 может всетаки код покажешь?
Dinar Garipov
@garf
Jul 24 2015 09:52
И загружай версии.
Soprun Vladislav
@vlsoprun
Jul 24 2015 09:52
@unlike777 попробуй убрать картинки на странице... Просто проверь
NelinD
@NelinD
Jul 24 2015 09:52
@Big-Shark стесняется)
Maxim
@Big-Shark
Jul 24 2015 09:53
@gaaarfild лучше ресайзить в бекэнде)
unlike777
@unlike777
Jul 24 2015 09:54
@NelinD да обосрете все равно =)
@vlsoprun попробовал воп воп =) ты прав однака =)
Maxim
@Big-Shark
Jul 24 2015 09:54
@unlike777 ну а так в угодайку играть будем)
unlike777
@unlike777
Jul 24 2015 09:55
@Big-Shark уже @vlsoprun угадал =)
буду проверять в чем проблема спасибо =)
Dinar Garipov
@garf
Jul 24 2015 09:55
@Big-Shark Ну я имел ввиду это, а не на фронте )))
unlike777
@unlike777
Jul 24 2015 09:55
походу ресайз постоянно делался а на кешь не смотрел)
Dinar Garipov
@garf
Jul 24 2015 09:56
Да однозначно в этом проблема. Ресайз картинок - дорогая задача
Ее делать надо однажды только.
И, кешируя, как отслеживаешь актуальность кеша?
unlike777
@unlike777
Jul 24 2015 09:58
@gaaarfild задумывалось как ты говоришь) но не работает, смотрю в чем проблема
Dinar Garipov
@garf
Jul 24 2015 10:03
Просто как ты определяешь, что кеш неактуальный, и ресайзить надо заново?
unlike777
@unlike777
Jul 24 2015 10:08
@gaaarfild у меня свой класс для ресайза... Логика такая
получаю картинку проверяю если нет кеша для заданных параметров то делаю ресайз и сохраняю получившуюся картинку ,
поэтому в следующий раз рейсаз делаться не будет потому что есть закешенная картинка
Dinar Garipov
@garf
Jul 24 2015 10:08
Вот какие параметры задаешь?
unlike777
@unlike777
Jul 24 2015 10:09
ширину, высоту, режим ресайза (обрезать или вписать) и цвет заднего фона
впринципе все очень просто, функционал полностью устраивает
Dinar Garipov
@garf
Jul 24 2015 10:10
Он же никогда не узнает, та ли это картинка
unlike777
@unlike777
Jul 24 2015 10:12
все дело в названии кеша, он составной: из параметров ресайза и пути к оригинальной картинки
Dinar Garipov
@garf
Jul 24 2015 10:13
понятно
unlike777
@unlike777
Jul 24 2015 10:13
Использую пакет Intervention\Image
Maxim
@Big-Shark
Jul 24 2015 10:14
@gaaarfild а у нас сейчас картинки отдает пхп скрипт забирая их из кэша)
Dinar Garipov
@garf
Jul 24 2015 10:15
@Big-Shark А я всегда ресайзю при загрузке. И просто отдаю потом готовые картинки
unlike777
@unlike777
Jul 24 2015 10:15
в моем случае косяк был в том что я проверял оригинальную картинку создавая экземпляр класса (взял из документации к пакету =) )
Image::make , каждый раз, поэтому все так долго было =)
еще раз всем спасибо за помощь
Soprun Vladislav
@vlsoprun
Jul 24 2015 10:16
@unlike777 intervention/imagecache пробовал?
unlike777
@unlike777
Jul 24 2015 10:17
да, не понравилось и не подошло
ща поправил теперь страница отдается за 0.2s
а не за 7 =)
Soprun Vladislav
@vlsoprun
Jul 24 2015 10:18
Вообще очень удобная штука, жаль что не умеет с амазоном работать (
unlike777
@unlike777
Jul 24 2015 10:19
почему?
Maxim
@Big-Shark
Jul 24 2015 10:19
@gaaarfild у нас проект старый, в куче мест разные картинки, и оно изначально примерное также работало, только генерилось при создании ссылки на картинку, переписали на такой вариант, и места меньше жрет, и работает быстрей.
Soprun Vladislav
@vlsoprun
Jul 24 2015 10:20
ну там нужно пути указывать, а s3 не локальный путь и я не допер как к нему обратиться
Alexey
@Butochnikov
Jul 24 2015 11:12
@gaaarfild привет. будешь свой блог в группе анонсировать?
Ivan
@mastanggt
Jul 24 2015 11:25
Здравствуйте. Пытаюсь сделать загрузку фотки на аватарку. Все работает хорошо, но при попытке загрузить 1 фотку выдает ошибку и сам файл не загружается. когда использую dd(Request::all()) вот чтовыдает для картинки:
"image" => UploadedFile {#29
-test: false
-originalName: "DSC01401.JPG"
-mimeType: "application/octet-stream"
-size: 0
-error: 1
}
Собственно вопрос, что, как и почему :)
Прошу помощи :)
Фотку могу залить если нужно :)
Anton
@cTapuk
Jul 24 2015 11:30
проблема только с этой фоткой чтоль?
Ivan
@mastanggt
Jul 24 2015 11:30
Ну пока что да
Она определяется MIME типом странно, application/octet-stream
Anton
@cTapuk
Jul 24 2015 11:30
@mastanggt залей фотку на обменник какой нить
Роман Сохарев
@greabock
Jul 24 2015 11:35
ребят, поясните в чем прикол. При слишком частых запросах к серваку, я получаю
No supported encrypter found. The cipher and / or key length are invalid
Это происходит только при частых запросах с одного адреса
Alexander Popov
@ruelephant
Jul 24 2015 11:39
@greabock
In config\app.php change:
'cipher' => 'whatever it is',
to
'cipher' => 'AES-256-CBC’,
Anton
@cTapuk
Jul 24 2015 11:39
@greabock php artisan key:generate
Роман Сохарев
@greabock
Jul 24 2015 11:39
то есть я по вашему идиот? =)
Alexander Popov
@ruelephant
Jul 24 2015 11:39
бывает :)
@greabock ключ прописал в .env?
а то мало ли
Роман Сохарев
@greabock
Jul 24 2015 11:40
Еще раз поясняю: это происходит только при очень частых запросах с одного адрса
под очень частыми я подразумеваю 15-20 запросов в секунду
Alexander Popov
@ruelephant
Jul 24 2015 11:41
не успевает он наверное
Роман Сохарев
@greabock
Jul 24 2015 11:41
лол )
Alexander Popov
@ruelephant
Jul 24 2015 11:42
по ресурсам то там все хорошо?
Роман Сохарев
@greabock
Jul 24 2015 11:42
да, вполне
Dinar Garipov
@garf
Jul 24 2015 11:42
@Butochnikov Привет. Можно и саннонсировать. Только надо подготовить его. оформить.
Дашь время?
Роман Сохарев
@greabock
Jul 24 2015 11:43
@ruelephant херня какая-то (простите мне мой французский)
Dinar Garipov
@garf
Jul 24 2015 11:43
@greabock может конкуренция?
Alexander Popov
@ruelephant
Jul 24 2015 11:44
надо в коде посмотреть где он сообщение выводит
наверняка оно под каждый случай одно и то же
Роман Сохарев
@greabock
Jul 24 2015 11:44
Стек трейс
[2015-07-24 11:38:37] local.ERROR: exception 'RuntimeException' with message 'No supported encrypter found. The cipher and / or key length are invalid.' in D:\OpenServer\domains\lcs\vendor\laravel\framework\src\Illuminate\Encryption\EncryptionServiceProvider.php:29
Stack trace:
#0 D:\OpenServer\domains\lcs\vendor\laravel\framework\src\Illuminate\Container\Container.php(733): Illuminate\Encryption\EncryptionServiceProvider->Illuminate\Encryption\{closure}(Object(Illuminate\Foundation\Application), Array)
#1 D:\OpenServer\domains\lcs\vendor\laravel\framework\src\Illuminate\Container\Container.php(626): Illuminate\Container\Container->build(Object(Closure), Array)
#2 D:\OpenServer\domains\lcs\vendor\laravel\framework\src\Illuminate\Foundation\Application.php(674): Illuminate\Container\Container->make('encrypter', Array)
#3 D:\OpenServer\domains\lcs\vendor\laravel\framework\src\Illuminate\Container\Container.php(837): Illuminate\Foundation\Application->make('Illuminate\\Cont...')
#4 D:\OpenServer\domains\lcs\vendor\laravel\framework\src\Illuminate\Container\Container.php(800): Illuminate\Container\Container->resolveClass(Object(ReflectionParameter))
#5 D:\OpenServer\domains\lcs\vendor\laravel\framework\src\Illuminate\Container\Container.php(771): Illuminate\Container\Container->getDependencies(Array, Array)
#6 D:\OpenServer\domains\lcs\vendor\laravel\framework\src\Illuminate\Container\Container.php(626): Illuminate\Container\Container->build('App\\Http\\Middle...', Array)
#7 D:\OpenServer\domains\lcs\vendor\laravel\framework\src\Illuminate\Foundation\Application.php(674): Illuminate\Container\Container->make('App\\Http\\Middle...', Array)
#8 D:\OpenServer\domains\lcs\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(143): Illuminate\Foundation\Application->make('App\\Http\\Middle...')
#9 D:\OpenServer\domains\lcs\public\index.php(58): Illuminate\Foundation\Http\Kernel->terminate(Object(Illuminate\Http\Request), Object(Illuminate\Http\Response))
#10 {main}
хм...
Alexander Popov
@ruelephant
Jul 24 2015 11:49
@greabock чувак в \vendor\laravel\framework\src\Illuminate\Encryption\EncryptionServiceProvider.php
нет 29 строки
Роман Сохарев
@greabock
Jul 24 2015 11:50
хахахах
Alexander Popov
@ruelephant
Jul 24 2015 11:50
шо?
куда бы она делась )
Alexander Popov
@ruelephant
Jul 24 2015 11:53
может это в 5.1 добавили?
я в 5.0 глянул у себя в проекте
@greabock а ты не думал что для такого хайлоад проекта, лучше использовать люмен?
у него лицо попроще под такие нагрузки
Роман Сохарев
@greabock
Jul 24 2015 11:55
@ruelephant это не хайлод
Alexander Popov
@ruelephant
Jul 24 2015 11:56
15-20 в СЕКУНДУ чистых запросов на бек не хайлоад?
учитывая что 1 запрос лара может переваривать по 100-150 мс
и это в продакшен окружении при том
Роман Сохарев
@greabock
Jul 24 2015 12:05
@ruelephant не, это не хайлоад. Это просто тесты
я просто не могу понять. Ну не может он часто страницы отдавать - так пусть просто тупит. Причем тут энкрипторы-то?
iGloom
@iGloom
Jul 24 2015 12:06
кстати то же самое замечал
при частых запросах вываливается в ту же ошибку
решение пока не искал, т.к. проект в разработке, но причину сходу не видна
Alexander Popov
@ruelephant
Jul 24 2015 12:07
@greabock пых как подключен?
iGloom
@iGloom
Jul 24 2015 12:08
@ruelephant поведение наблюдается и на винде с апачем, и на убунте с нгинкс+пхп-фпм
не знаю как у него, в данном случае, я наблюдал на обоих окружениях
Alexander Popov
@ruelephant
Jul 24 2015 12:09
надо смотреть на mcrypt
исходники
Роман Сохарев
@greabock
Jul 24 2015 12:09
нджинкс+апач
ладно, разберемся =)
всем спасибо
iGloom
@iGloom
Jul 24 2015 12:11
расскажи если что нибудь нароешь, пожалуйста.
Роман Сохарев
@greabock
Jul 24 2015 12:12
окей
Alexander Popov
@ruelephant
Jul 24 2015 12:13
насколько я понимаю, оно само как драйвер только расширение
Alexey
@Butochnikov
Jul 24 2015 12:13
@gaaarfild да сколько угодно. напиши, когда будешь готов
Soprun Vladislav
@vlsoprun
Jul 24 2015 12:14
@Butochnikov ты хочешь в группе контакта опубликовать?
Alexander Popov
@ruelephant
Jul 24 2015 12:14
@greabock оно же системную либу юзает для шифрования насколько я понимаю
Alexey
@Butochnikov
Jul 24 2015 12:14
@vlsoprun да. а что?
Alexander Popov
@ruelephant
Jul 24 2015 12:15
может она с грохотом падает от запросов?
Soprun Vladislav
@vlsoprun
Jul 24 2015 12:16
@Butochnikov у меня корпоративный проект блог / вопросы-ответы сейчас в процессе, когда закончу может тоже кому нибудь будет интересно.
Alexey
@Butochnikov
Jul 24 2015 12:16
@vlsoprun конечно. пиши мне в ВК. репостну
iGloom
@iGloom
Jul 24 2015 12:17
@ruelephant странно, что падает на разных окружениях. неужели все варианты либы в таком ауте? и на винде, и на убунте
Alexander Popov
@ruelephant
Jul 24 2015 12:18
ну либо то одна насколько я понимаю
просто скомпилированная под разные платформы
Arsen Ibragimov
@OnArs
Jul 24 2015 12:45
Всем привет! Можно Я здесь вакансию на Ларавел разработчика размещу?
Dmitry Shlyomin
@dmitry1337
Jul 24 2015 12:47
как в eloquent построить такую логику выбора: A and B and C and (D or E)?
если юзать where()->where()->orWhere()..... , то получается A and B and C or D or E.
bubnoff
@bubnoff
Jul 24 2015 12:51
Привет всем. Столкнулся с проблемой авторизации через соц сети.
Если речь идет о авторизации в вебе через обычные редиректы, вопросов нет. Но если мне мобильное приложение шлет только access_token, как по нему получить инфу о юзере через Sociolite ? Спасибо заранее.
Alexey
@Butochnikov
Jul 24 2015 12:52
@OnArs можно, только хорошую )
Илья.
@IlyaVorozhbit
Jul 24 2015 12:52
@bubnoff token приходит в коллбэк, там вcя обработка должна быть
@bubnoff через sociаlite никак
bubnoff
@bubnoff
Jul 24 2015 12:54
@IlyaVorozhbit оно protected
Dmitry Shlyomin
@dmitry1337
Jul 24 2015 12:54

@assurrussa это не то, я же писал. тут

select * from users where name = 'Джон' or (votes > 100 and title <> 'Админ')

а мне надо

select * from users where name = 'Джон' AND (votes > 100 OR title <> 'Админ')
Илья.
@IlyaVorozhbit
Jul 24 2015 12:55
@bubnoff да... и к тому же там массив, что уже не токен, как строка. Тогда точно никак
Artur Gafurov
@assurrussa
Jul 24 2015 12:55
@dmitry1337 а что нельзя добавить там условие orWhere....
bubnoff
@bubnoff
Jul 24 2015 12:56
А какие еще альтернативные пакеты есть для реализации соцсетки? @IlyaVorozhbit
Илья.
@IlyaVorozhbit
Jul 24 2015 12:56
@bubnoff нужно искать на pаckаgist, у меня пока не было задачи по токену получать сведения.
unlike777
@unlike777
Jul 24 2015 12:56
@dmitry1337
$query->where(function($query) {
$query->where()->orWhere()
})
bubnoff
@bubnoff
Jul 24 2015 12:58
@IlyaVorozhbit https://github.com/oriceon/oauth-5-laravel Смотрю пока этот
Илья.
@IlyaVorozhbit
Jul 24 2015 12:58
@bubnoff я в VK АPI такого метода не вижу. Мне кажется его и не будет, слишком это опасно
Arsen Ibragimov
@OnArs
Jul 24 2015 12:59

Ищем Laravel разработчика!

Проект связан с продвижением в инстаграме. Тем что ты будешь делать будет пользоваться больше 2 000 пользователей ежедневно. В нашей команде дизайнер, системный администратор, фронтенд разработчик и специалист поддержки.

Какие задачи нужно решать?

  • Работа с официальным и не официальным API instagram
  • Написание/фикс имеющихся кронов, воркеров и демонов
  • Разработка нового и поддержание имеющегося функционала

Требования:

  • Уверенное знание Laravel 5
  • Опыт работы с многопоточностью
  • Владение ssh
  • Знание Git

Огромным плюсом будет знание Phyton или NodeJs. Так же мы используем Gulp.

Что мы предлагаем:

  • Удалённая работа или работа в выбранном коворкинге Санкт-Петербурга
  • Общепринятая 40 часовая рабочая неделя. Гибкий график
  • Ежемесячные бонусы
  • Зарплата: 40 000 руб.

Заинтересовался? Пиши мне.

Dmitry Shlyomin
@dmitry1337
Jul 24 2015 13:03
@bubnoff спасибо
bubnoff
@bubnoff
Jul 24 2015 13:03
@IlyaVorozhbit Грусть. Пойду пинать IOS разрабов)
Илья.
@IlyaVorozhbit
Jul 24 2015 13:03
@bubnoff а они чего?
bubnoff
@bubnoff
Jul 24 2015 13:04
@IlyaVorozhbit Расскажу как узнаю. Пока не понятно.
Илья.
@IlyaVorozhbit
Jul 24 2015 13:04
@bubnoff умеют по токену данные брать?
bubnoff
@bubnoff
Jul 24 2015 13:07
@IlyaVorozhbit Да вот я думаю что они там все умеют, скажу чтобы сразу слали мне ID провайдера и данные по юзеру. Так проще на серваке будет. Хотя костыльно.
Soprun Vladislav
@vlsoprun
Jul 24 2015 13:12
This message was deleted
Dmitry Shlyomin
@dmitry1337
Jul 24 2015 13:45
@bubnoff
symbios_zi
@symbiosss
Jul 24 2015 14:41
faker только с английким языком работает?
iGloom
@iGloom
Jul 24 2015 14:41
вроде нет. по крайней мере в его исходниках я случайно наткнулся на "Мертвые Души" целиком
symbios_zi
@symbiosss
Jul 24 2015 14:43
хм, интересно как его включить
Paul Klementyev
@klermonte
Jul 24 2015 14:43
нет, там куча языков, для русского вот че там https://github.com/fzaninotto/Faker/tree/master/src/Faker/Provider/ru_RU
$faker = Faker\Factory::create('ru_RU');
symbios_zi
@symbiosss
Jul 24 2015 14:44
если я создам свой тип, я могу его добавить на гитхаб? Мне нужны объявления недвижимости
Paul Klementyev
@klermonte
Jul 24 2015 14:44
потрудитесь хотя бы пару раз скрольнуть мышкой в документации
symbios_zi
@symbiosss
Jul 24 2015 14:45
блин, а там уже есть адрес )
NelinD
@NelinD
Jul 24 2015 14:58
http://habrahabr.ru/company/tmru/blog/263471/
все. мы больше не нужны
Maxim
@Big-Shark
Jul 24 2015 15:00
@OnArs 40, реали?
Paul Klementyev
@klermonte
Jul 24 2015 15:08
Для питера да, маловато
Alexander Popov
@ruelephant
Jul 24 2015 15:09
@NelinD главное орать что «премиум класс» :)
Jupeto
@PatSpiegel
Jul 24 2015 15:18
Почему проверка работает не коректно Keyword::firstOrCreate(['keyword' => $data]);
добавляю "музыка сердца. х/ф (12+) индия, 1999. красавец манав мехта из богатой семьи влюбляется в дочку популярного исполнителя фольклорн"
таблица keyword -> unique
ошибка что дубликат пытается добавить - Integrity constraint violation: 1062 Duplicate entry
?
Paul Klementyev
@klermonte
Jul 24 2015 15:22
видимо по указанным полям модель не находится, а при попытке записать новую возникает ошибка дублирования ключа, может быть какие-то особенности кодирования спецсимволов
Marina
@marina16
Jul 24 2015 15:39
привет. а зачем нам нужны эти Eloquent ? нельзя что ли напрямую что-то внести или исправить?
Paul Klementyev
@klermonte
Jul 24 2015 15:40
@marina16 что ты имеешь в виду?
Soprun Vladislav
@vlsoprun
Jul 24 2015 15:40
@marina16 можно, но зачем?
Marina
@marina16
Jul 24 2015 15:40
да я не пойму зачем оно надо
Paul Klementyev
@klermonte
Jul 24 2015 15:41
@marina16 Ну вот например как бы ты создала новую запись в таблице из php кода?
Soprun Vladislav
@vlsoprun
Jul 24 2015 15:41
@marina16 А как же кастомизация, легкость понимания чужого кода, простота и элегантность?
Marina
@marina16
Jul 24 2015 15:44
@klermonte а создание миграции?..
Paul Klementyev
@klermonte
Jul 24 2015 15:44
Я кстати знаком с категорией разработчиков, которые всемы лапами упираются лишь бы не использовать ничего нового и облегчающего жизнь. Например, рассказал чуваку с 8 летним опытом разработки на php про composer, он меня послал куда подальше типа шатал я использовать чужие пакеты
@marina16 что миграции?
Schema::create('yandex_subjects', function($collection)
        {
            $collection->index('created_at');
            $collection->index('category_id');

            $collection->unique('title_hash');
        });
Marina
@marina16
Jul 24 2015 15:44
я только его учу, поэтому не все понимаю еще
сорри
Paul Klementyev
@klermonte
Jul 24 2015 15:45
гляди какая красота
это я индексы проставил на таблице
Marina
@marina16
Jul 24 2015 15:45
это с помощью Eloquent ?
как оно на русский то переводится
шаблонизатор или как-то так
?
Paul Klementyev
@klermonte
Jul 24 2015 15:46
не, это не элоквент
схема билдер
$subject = YandexSubject::with([
            'donors' => function ($query) {
                $query
                    ->with('smi')
                    ->where('smi_id', 'exists', true)
                    ->limit(10)
                    ->orderBy('rating', 'desc');
            }
        ])->findOrFail($id);
вот пример использования элоквента, думаю в чистом sql Это выглядело не столь элегантно и понятно
Marina
@marina16
Jul 24 2015 15:50
ну ладно, мы создаем модели, чтобы нам удобнее было работать с бд, ок
Paul Klementyev
@klermonte
Jul 24 2015 15:50
именно так)
плюс на модели можно кучу всего повесить, например обработчики события, геттеры сеттеры фиктивных полей, а еще их можно автоматом создавать из параметров роутов и т.д.
Marina
@marina16
Jul 24 2015 15:52
а берут вообще куда-то на стажировку?
Paul Klementyev
@klermonte
Jul 24 2015 15:52
хз, это тебе больше по сайтам типа hh.ru полазить надо
знавал я одну контору, которая брала на стажировку, но ты за это должен был бы им платить, что-то около 10к в месяц :D
Marina
@marina16
Jul 24 2015 15:53
Оо
Alexander Popov
@ruelephant
Jul 24 2015 15:57
@klermonte 10k рублей? для юрика?
это лохотрон какой то
такую сумму юр лицо даже не заметит
даже мелкое
Paul Klementyev
@klermonte
Jul 24 2015 15:58
ну контора мелкая, я б даже сказал мелочная, и иметь 3 халявных манки-кодера, которые еще и сами поставляют одну зп для них прикольно
никто не спорит, что лохотрон
projct1
@projct1
Jul 24 2015 16:05
чуваки подскажите как для группы роутов передать во все вьюшки определённые переменные? http://joxi.ru/8An0REOHNDjLmO
Paul Klementyev
@klermonte
Jul 24 2015 16:05
view compousers
projct1
@projct1
Jul 24 2015 16:06
без создания лишних классов
Paul Klementyev
@klermonte
Jul 24 2015 16:07
¯\(ツ)
projct1
@projct1
Jul 24 2015 16:07
((
Paul Klementyev
@klermonte
Jul 24 2015 16:08
а чем тебе "лишние" классы не угодили?
projct1
@projct1
Jul 24 2015 16:08
ну зачем целый класс создавать когда надо тока массивчик с пунктами меню передать
Paul Klementyev
@klermonte
Jul 24 2015 16:08
ахах, "Целый класс"
Раз ты боишься создавать классы, сложновато тебе будет с ларавел подружиться
а для меню есть куча пакетов
projct1
@projct1
Jul 24 2015 16:10
например?
Paul Klementyev
@klermonte
Jul 24 2015 16:10
projct1
@projct1
Jul 24 2015 16:10
просто я хочу изучить ларавел, тока начал, и не хотелось бы пакеты использовать готовые
Paul Klementyev
@klermonte
Jul 24 2015 16:11
вот этот пожалуй самый популярный https://github.com/vespakoen/menu
projct1
@projct1
Jul 24 2015 16:13
@klermonte http://packalyst.com/ тут по идеи всё собрано что и на packagist ?
тока для ларавела чисто
Paul Klementyev
@klermonte
Jul 24 2015 16:13
ага
автоматом парсят
projct1
@projct1
Jul 24 2015 16:14
хмм, круто, спасиб)
я вот как делаю))
            <ul class="nav navbar-nav">
                @foreach($menu as $slug => $name)
                    <li><a href="{{ action(sprintf('Admin\%sController@index', $slug)) }}">{{ $name }}</a></li>
                @endforeach
            </ul>
так делают ваще??))
Paul Klementyev
@klermonte
Jul 24 2015 16:16
делают, как минимум один человек точно)
projct1
@projct1
Jul 24 2015 16:19
разобрался)
Paul Klementyev
@klermonte
Jul 24 2015 16:20
сдается мне, что так они буду вообще во всех вьюхах
projct1
@projct1
Jul 24 2015 16:20
кстати а можно сделать как-нибудь чтобы во всех шабьлонах группы сразу было автоматом везде как бы прописано @extends('layout')
ну да, конкретной группы
кстати что лучше использовать фасады или хелперы, например View:: или view()
toropchin
@toropchin
Jul 24 2015 16:44
А что в новой версии laravel миграции не создаются автоматом при создании модели?
моя версия version 5.1.7 (LTS)
Alexander Popov
@ruelephant
Jul 24 2015 16:59
народ посоветуйте тушку для интерфейса
нужно поддержка html 5 + мобильные платформы (ios)
шо бы типо сделал и он аккуратно ресайзицо если надо
Dinar Garipov
@garf
Jul 24 2015 17:04
Перенес блог на http://0ez.ru/ Если кому интересно, админка - http://0ez.ru/root
Логин: 0ez@example.com
Пароль: admin
Alexander Popov
@ruelephant
Jul 24 2015 17:05
а шо это?
@gaaarfild срочно меняй шапку, я чуть не закрыл :)
Dinar Garipov
@garf
Jul 24 2015 17:06
Ну написал бложек на Ларе для себя. :) Решил и вам рассказать. Ну, на самом деле, еще не написал. Там много работы. Но, начало положено )) 2 недели писал! ))
Alexander Popov
@ruelephant
Jul 24 2015 17:06
1 в 1 с заглушкой для доменов
я обычно такое на автомате закрываю
Dinar Garipov
@garf
Jul 24 2015 17:06
Аааа )))
Понял тебя ))
Ну, дефолтную тему заменитьможно ))
Пока над функционалом работаю. ))
В моих репах исходники.
Alexander Popov
@ruelephant
Jul 24 2015 17:06
не оформил в пакет?
Какой?
Alexander Popov
@ruelephant
Jul 24 2015 17:07
композера
Dinar Garipov
@garf
Jul 24 2015 17:07
А не
Alexander Popov
@ruelephant
Jul 24 2015 17:07
фуу! :)
Dinar Garipov
@garf
Jul 24 2015 17:07
Это ж прям сайт. С контроллерами и все такое ))
Я ж делал для себя ))
Alexander Popov
@ruelephant
Jul 24 2015 17:07
die(’now!’);
Dinar Garipov
@garf
Jul 24 2015 17:07
now!
Alexander Popov
@ruelephant
Jul 24 2015 17:08
пойду пожру
Dinar Garipov
@garf
Jul 24 2015 17:08
Я сынтерпритировал твой код ))
Alexander Popov
@ruelephant
Jul 24 2015 17:08
ты должен быть мертв
Dinar Garipov
@garf
Jul 24 2015 17:08
Я мертв ))
Это агония ))
Alexander Popov
@ruelephant
Jul 24 2015 17:09
Dinar Garipov
@garf
Jul 24 2015 17:09
Ты меня со спутника сфоткал?
Alexander Popov
@ruelephant
Jul 24 2015 17:09
с чайника
чайник следит за тобой
Dinar Garipov
@garf
Jul 24 2015 17:10
не надо так!
Alexander Popov
@ruelephant
Jul 24 2015 17:10
ваши данные устарели, никто уже со спутника не следит. Камер просто гора дома :)
Dinar Garipov
@garf
Jul 24 2015 17:10
Я на чайник пока не ставил ))
мне лень
Alexander Popov
@ruelephant
Jul 24 2015 17:12
китайцы ставят
в прошлом году выловили партию утюгов
они при включении в розетку 220 вольт, подключаются к сети wi-fi которая без пароля (в радиусе 200 метро)
после чего начинают атаковать сеть изнутри
Dinar Garipov
@garf
Jul 24 2015 17:15
Страшные вещи какие-то рассказываешь ))
Alexander Popov
@ruelephant
Jul 24 2015 17:15
они в чайники запаяли
30 штук товара успело уйти в магазины..
у кого то стоит чайник такой вот
Dinar Garipov
@garf
Jul 24 2015 17:16
Я бы взял ))
Alexander Popov
@ruelephant
Jul 24 2015 17:17
а что удивляться то
там не сложно
питание 220 вольт...
projct1
@projct1
Jul 24 2015 17:17
подскажите как работает prefix в роуте
projct1
@projct1
Jul 24 2015 17:23
в документации нет полного списка возможных параметров для группы?
только prefix и namespace?
Там ещё мидлвер, домен
projct1
@projct1
Jul 24 2015 17:26
before ещё есть
почему в документации нет всего списка (
Paul Klementyev
@klermonte
Jul 24 2015 17:28
Бифор это фильтр, а от фильтров лучше отказаться в пользу мтдлверов
Alexander Popov
@ruelephant
Jul 24 2015 17:29
@rorc в коде есть
как говорят у нас на канале :)
Paul Klementyev
@klermonte
Jul 24 2015 17:30
Ну ваще да, если юзаешь шторм, то ваще нет проблем исследовать код фреймворка
Maxim
@Big-Shark
Jul 24 2015 17:41
в люмен я так понял авторизации нет?
projct1
@projct1
Jul 24 2015 17:50
где описаны все возможные методы для создания таблиц и полей к ним (класс Blueprint)
Dinar Garipov
@garf
Jul 24 2015 17:56
@rorc В апи
projct1
@projct1
Jul 24 2015 17:57
@gaaarfild круто, спасибо, не знал про этот сайт
Paul Klementyev
@klermonte
Jul 24 2015 17:57
Ruelephant сказал же, в коде:D
projct1
@projct1
Jul 24 2015 18:01
нахера ваще эти миграции и сидеры, проще так в heidiSQL таблицы создать и заполнить данными)
Paul Klementyev
@klermonte
Jul 24 2015 18:03
Уууу, а если ты не один разрабатываешь? А если надо откатить часть изменений?
projct1
@projct1
Jul 24 2015 18:03
))
Paul Klementyev
@klermonte
Jul 24 2015 18:03
Вечер велосипедистов какой-то, ейбогу
Нахер элоквент, нахер миграции
JhaoDa
@jhaoda
Jul 24 2015 18:07
@greabock проблема в том, что не успевает читаться .env файл, сталкивался с таким
Paul Klementyev
@klermonte
Jul 24 2015 18:08
Тогда, получается запись напрямую в конфигурации должна решить проблему?
JhaoDa
@jhaoda
Jul 24 2015 18:09
Однако, да.
Paul Klementyev
@klermonte
Jul 24 2015 18:12
Хотя мне не понятно, как в пхп файл может неуспеть считаться, это ж синхранная операция
JhaoDa
@jhaoda
Jul 24 2015 18:20
Ну я не уверен, что проблема именно в файле, но смысл в том, что данных из .env нет
Или он не считался, или putenv() не отработала нормально при разборе .env...
emissar
@emissar
Jul 24 2015 18:37
добрый вечер
projct1
@projct1
Jul 24 2015 18:37
подскажите как из модели получить все поля таблицы, например чтобы в заголовке прописать
emissar
@emissar
Jul 24 2015 18:38
кто-нить с ckeditor работал? Не могу побороть его автоинсерты тега <p>. autoParagraph, enterMode менял - бесполезно. При enter перестал <p> пихать, зато при редактировании текста обрамляет его куски в параграфы зачем-то
текста = html кода
projct1
@projct1
Jul 24 2015 18:46
Route::group(['prefix' => 'admin', 'namespace' => 'Admin'], function() {
View::share('navMenu', [
'Page' => 'Страницы',
'Catalog' => 'Каталог',
'Order' => 'Заказы'
]);
Route::get('/', 'IndexController@index');
Route::get('page', 'PageController@index');
Route::get('page/edit', 'PageController@edit');
Route::get('catalog', 'CatalogController@index');
Route::get('order', 'OrderController@index');
});
как автоматом сделать чтобы эешены прописывались, чтобы для каждого экшена роут не создавать отдельный?
This message was deleted
JhaoDa
@jhaoda
Jul 24 2015 18:47
@rorc никак
Либо юзать Route::controller. Но это не тру.
Paul Klementyev
@klermonte
Jul 24 2015 18:49
Почему не тру?
JhaoDa
@jhaoda
Jul 24 2015 18:50
Потому что 90% это CRUD-операции, а для них есть Route::resource
projct1
@projct1
Jul 24 2015 18:53
@jhaoda не понял, как юзать? для чего он?
и почему не тру:?ъ
JhaoDa
@jhaoda
Jul 24 2015 18:54
@rorc доку читать пробовал?
Paul Klementyev
@klermonte
Jul 24 2015 18:55
О господи, я уж испугался, что что-то в роутах пропустил:D
Сергей
@egent
Jul 24 2015 19:21

@emissar

CKEDITOR.replace( 'ck-editor' , {
toolbar: 'Full',
enterMode : CKEDITOR.ENTER_BR,
shiftEnterMode: CKEDITOR.ENTER_P
} ); по Enter будет ставить <br> , Shift + Enter - поставит <p>

projct1
@projct1
Jul 24 2015 19:32
@jhaoda прочитал, нормально) а почему не тру? потому что приходится всегда приставки get post к экшенам делать?
JhaoDa
@jhaoda
Jul 24 2015 19:35
@rorc я выше ответил
Сергей
@egent
Jul 24 2015 19:39

@emissar

с предыдущими настройками всетаки есть первый параграф:
так лучше:

CKEDITOR.replace( 'ck-editor' , {
enterMode : 2,
enterMode : CKEDITOR.ENTER_BR,
shiftEnterMode : CKEDITOR.ENTER_P,
autoParagraph : false
});

projct1
@projct1
Jul 24 2015 19:39
то есть, ты хочешь сказать, для обычных операций по редактированию записей, надо использовать Route::resource ?
JhaoDa
@jhaoda
Jul 24 2015 19:41
@rorc создание, чтение, редактирование, удаление, да
projct1
@projct1
Jul 24 2015 19:42
точно, круто, спасибо, не знал) и не надо дублировать роут для каждого екшена
projct1
@projct1
Jul 24 2015 20:01
народ, как префикс написать к вьюшке, чтобы admin каждый раз в путях не прописывать view('admin.page.list')
Soprun Vladislav
@vlsoprun
Jul 24 2015 20:02
@rorc могу ошибаться но вроде не как
projct1
@projct1
Jul 24 2015 20:02
если я нахожусь и так в папке http/controllers/admin, и в текущем контролллере PageController, чтобы не писать view('admin.page.list'), а сразу view('list')
Soprun Vladislav
@vlsoprun
Jul 24 2015 20:03
@rorc
return view(Route::currentRouteName(), compact('category'));
projct1
@projct1
Jul 24 2015 20:04
compact что делает?
Paul Klementyev
@klermonte
Jul 24 2015 20:04
Php.net!
Soprun Vladislav
@vlsoprun
Jul 24 2015 20:05
@rorc php.net очень удобная функция
Paul Klementyev
@klermonte
Jul 24 2015 20:06
Кстати, если у роута нет имени, че вернёт?
Soprun Vladislav
@vlsoprun
Jul 24 2015 20:06
Хз ))
Artur Gafurov
@assurrussa
Jul 24 2015 20:06
@klermonte ошибку вроде)
Soprun Vladislav
@vlsoprun
Jul 24 2015 20:07
false или null
Paul Klementyev
@klermonte
Jul 24 2015 20:07
Ворот) не самое надёжное решение:D
Soprun Vladislav
@vlsoprun
Jul 24 2015 20:08
null возвращает
Artur Gafurov
@assurrussa
Jul 24 2015 20:09
@rorc https://laracasts.com/series/laravel-5-fundamentals/episodes/1 начни отсюда, там много полезного)
Dinar Garipov
@garf
Jul 24 2015 20:11
@klermonte Что значит у роута нет имени?
Paul Klementyev
@klermonte
Jul 24 2015 20:11
То и значит, по умолчанию роут без имени, но его можно задать при создании
Dinar Garipov
@garf
Jul 24 2015 20:11
Имя где?
Какое имя?
as?
bubnoff
@bubnoff
Jul 24 2015 20:11
Парни, кто юзает dingo api, подскажите, как в нужный мне момент поменять формат вывода ошибок.
Они поумолчанию в виде json выводятся, а я хочу по определенной группе роутов, если есть ошибка выводилось в виде стандартного HTML дебагера (или просто, если дебаг выключен). Спасибо
projct1
@projct1
Jul 24 2015 20:12
@assurrussa спс)
Paul Klementyev
@klermonte
Jul 24 2015 20:12
Роуты ресурса в количестве 7 штук всегда именованы
Dinar Garipov
@garf
Jul 24 2015 20:12
А понятно )) Не юзаю ни ресорс ни контроллер
Прописываю по маргинальски, руками каждый
Paul Klementyev
@klermonte
Jul 24 2015 20:13
Так и в этом случае его можно именовать
Dinar Garipov
@garf
Jul 24 2015 20:13
В этом случае я его именую. ))
И везде потом обращаюсь по route('route-name')
Я поэтому и спросил as?
Paul Klementyev
@klermonte
Jul 24 2015 20:14
Маладэц!)
butschster
@butschster
Jul 24 2015 20:14
Ребятишки привет.
Dinar Garipov
@garf
Jul 24 2015 20:14
Бон суар )
butschster
@butschster
Jul 24 2015 20:15
Я тут в KodiCMS закончил с архитектурой нового раздела и есть желание подключить разработчиков к его доработке, может советам и т.д.
Генератор разделов админ панели с возможностью добавления полей в раздел и т.д.
Типы полей представляют из себя классы, которые можно добавлять вручную.
При создании раздела для него создается таблица в БД и при добавлении поля оно физически присутсвует в таблице
Dinar Garipov
@garf
Jul 24 2015 20:17
То есть генератор?
butschster
@butschster
Jul 24 2015 20:17
Нажимаешь кнопку создать раздел
указываешь его название и создается таблица в БД
добавляешь поля и формируешь структуру раздела
Пока что всего 5 типов полей, в будущем планируется около 20, в том числе и relation поля для связи с другими тами же разделами
Paul Klementyev
@klermonte
Jul 24 2015 20:19
Логин?)
butschster
@butschster
Jul 24 2015 20:20

Russian

Username: admin@site.com
Password: password
English

Username: admin_en@site.com
Password: password

Paul Klementyev
@klermonte
Jul 24 2015 20:23
Эммм, т.е. это генератор моделей что-ли?
butschster
@butschster
Jul 24 2015 20:23
Нет
Paul Klementyev
@klermonte
Jul 24 2015 20:24
Я не очень понимаю что есть раздел
butschster
@butschster
Jul 24 2015 20:25
Ну тут два понятия тип раздела - это то, что можно создать, каждый тип раздела может иметь предустановленный набор полей
и он может иметь свою логику обработки документов раздела
Сейчас есть тип "Обычный" который по умолчанию создает 5 полей, Id, Заголовок, Дата создания, Дата обновления и статус публикации
Paul Klementyev
@klermonte
Jul 24 2015 20:26
Ну я и говорю, раздел это класс модели а документ инстанс этой модели
butschster
@butschster
Jul 24 2015 20:26
ну как то так
только моели не генерируются
модель одна для всех
Paul Klementyev
@klermonte
Jul 24 2015 20:26
Да я понял)
Короче что-то типа инфоблоков в битриксе, не к ночи будет он помянут
butschster
@butschster
Jul 24 2015 20:27
да, точно
я забыл опять про них
только в битриксе там все жестко зашито в систему
а здесь можно расширять список типов полей
Paul Klementyev
@klermonte
Jul 24 2015 20:28
Ну там поля тоже отдельно создаются
butschster
@butschster
Jul 24 2015 20:28
я имею виду классы полей
Paul Klementyev
@klermonte
Jul 24 2015 20:28
Ну там довольно внушительный список
butschster
@butschster
Jul 24 2015 20:28
там?
нее
Paul Klementyev
@klermonte
Jul 24 2015 20:29
Как раз примерно те самые 20 штук
Даже релейшн с другой сущностью
Картинки там всякие
butschster
@butschster
Jul 24 2015 20:29
сейчас посчитаю
Marina
@marina16
Jul 24 2015 20:33
почему у него в видосе получилось так, и он говорит бла бла как круто что json все так красиво выводит, а у меня вывело совсем не так красиво
23.PNG
22.PNG
Dinar Garipov
@garf
Jul 24 2015 20:33
@butschster Я правильно понимаю, что каждый модуль - это отдельный app?
@marina16 Установи расширение для брузера
Paul Klementyev
@klermonte
Jul 24 2015 20:34
Потому что у тебя нет плагина
Marina
@marina16
Jul 24 2015 20:34
ок, спасибо
butschster
@butschster
Jul 24 2015 20:35
@gaaarfild да
fields.png
@klermonte вот смотри слева типы полей битрикса на моем сайте и справа типы полей со старой версии KodiCMS и они все мигрируют сеюда
@gaaarfild https://github.com/KodiCMS/module-loader можешь потестить
мы его вынесли в отдельный пакет
Paul Klementyev
@klermonte
Jul 24 2015 20:38
Круто
butschster
@butschster
Jul 24 2015 20:38
и этот список полей ты можешь расширять и как угодно вертеть
нет ограничений
Paul Klementyev
@klermonte
Jul 24 2015 20:39
У битриксе там упрощение, все в 4 таблицах хранится поэтому по сути все либо строка либо текст
Ну расширить то не каждый сможет)
butschster
@butschster
Jul 24 2015 20:40
я так думал только для файлов сделать, чтобы хранить всю информацию и использовать эти данные по запросу
Вот классы полей. выглядят не так страшно https://github.com/KodiCMS/kodicms-laravel/tree/dev/modules/Datasource/Fields/Primitive
Paul Klementyev
@klermonte
Jul 24 2015 20:41
Ну ваще да, а в самих таблицах айдишник на файл
butschster
@butschster
Jul 24 2015 20:42
класс раздела, документа и поля - Eloquent модель допиленая, так что можно с ними удобно работать
Paul Klementyev
@klermonte
Jul 24 2015 20:42
А где пользователю складировать свои реализации и переопределения?
Или установка из репы не предусмотрена?
butschster
@butschster
Jul 24 2015 20:43
ты про что?
Paul Klementyev
@klermonte
Jul 24 2015 20:45
Ну вот склонировал я себе Коди, реализовал поле, положил там, где все. А потом вы взяли и реализовали одноимённое поле. Я спулился и что мы видим? Конфликт
Dinar Garipov
@garf
Jul 24 2015 20:45
@butschster Да. Я уже поглядел. Вот думаю, насколько нужен мне. Он больше для многофункциональных проектов подходит
А так, куртая штука
все расширяется через конфиги
Paul Klementyev
@klermonte
Jul 24 2015 20:46
Вот) спасибо, понял
butschster
@butschster
Jul 24 2015 20:46
создаешь в своем плагине конфиг или в app одноименный, в него добавляешь новый тип поля и указываешь где что
Paul Klementyev
@klermonte
Jul 24 2015 20:46
Очень классно
butschster
@butschster
Jul 24 2015 20:46
так же и с разделами
плагины и модули могут быть composer пакетами с указанием типа \
{
    "name":        "kodicms/api",
    "type":        "kodicms-module", // или "kodicms-plugin"
    ....
}
Dinar Garipov
@garf
Jul 24 2015 20:50
@butschster А как ты организовываешь расширяемость плагинами?
butschster
@butschster
Jul 24 2015 20:50
всмысле? плагин это тоже самое что и модуль, только включается через админку
модуль = app
там есть тестовый плагин в репозитории
все модули и плагины удобно дебажить
есть консольные команды для вывода всех модулей и плагинов
68747470733a2f2f646c2e64726f70626f7875736572636f6e74656e742e636f6d2f752f313131303634312f6b6f6469636d732d77696b692f6d6f64756c65734c6973742e706e67.png
вот такую штуку выводит консоль по модулями, т.е. всегда можно знать что и где находится
Dinar Garipov
@garf
Jul 24 2015 20:56
Не не. Отедльные модули со своей структурой - это норм.
А вот как именно апи для плагинов делать? Чтобы они могли встраиваться в меню, формы и т.п.
butschster
@butschster
Jul 24 2015 20:56
через конфиги
принцип какой
при старте системы cms пробигается по всем модулям и полагинам берет из них конфиги и сливает одноименные в один и кеширует
т.е. если у тебя в двух модулях конфиг sitemap она их смерджит
Dinar Garipov
@garf
Jul 24 2015 20:58
Ага
Принцип понял
butschster
@butschster
Jul 24 2015 20:58
вот карта сайта
Dinar Garipov
@garf
Jul 24 2015 20:58
То есть по сути все через конфиги просто, структуру которых ты придумаешь сам.
butschster
@butschster
Jul 24 2015 20:58
каждый модуль имеет такой конфиг и в нем добавляются разделы в меню
Dinar Garipov
@garf
Jul 24 2015 20:59
@butschster А что означает priority?
butschster
@butschster
Jul 24 2015 20:59
порядок вывода
Dinar Garipov
@garf
Jul 24 2015 20:59
Понял
butschster
@butschster
Jul 24 2015 21:00
ну вот еще пример есть конфиг https://github.com/KodiCMS/kodicms-laravel/blob/dev/modules/Filemanager/config/filemanager.php, ты можешь в плагине создать свой такой конфиг и подключить в нем еще одну директорию в ФМ
и каждый модлуь и плагин не имеет никаких ограничений по работе с системой
также есть приоритеты, что плагин главнее модуля, app главнее плагина
Dinar Garipov
@garf
Jul 24 2015 21:01
Понял
@butschster Возможно, я буду использовать модуль лоудер. Хочу сделать плагинность для блога
butschster
@butschster
Jul 24 2015 21:02
да используй, может допилишь что или найдешь ошибки
В модулях главный файл moduleContainer, в нем вся логика модулей
Если у модуля присутсвует внутри этот файл, то он подключается, если нет, то системный
Dinar Garipov
@garf
Jul 24 2015 21:17
А что может в нем содержаться?
В контейнере
Dinar Garipov
@garf
Jul 24 2015 21:31
Вы в Винде как используете консоль и SSH? Через путти? А есть более удобные инструменты, как линуксе например Yakuake?
Artur Gafurov
@assurrussa
Jul 24 2015 21:35
git bash
Alexander Popov
@ruelephant
Jul 24 2015 21:36
жраать
пацаны я проспал кафе
Alexander Popov
@ruelephant
Jul 24 2015 21:42
@Big-Shark как там люмен?
Dinar Garipov
@garf
Jul 24 2015 21:46
@assurrussa Я имел ввиду, такая штука, которая сверху выпадает, а не эмулятор консоли.
Artur Gafurov
@assurrussa
Jul 24 2015 21:49
@gaaarfild а вроде нету такого( если найдешь поделись)))) ), все ввиде эмулятора только, я не видел других))
Dinar Garipov
@garf
Jul 24 2015 21:57
А так я в винде не работаю. Просто иногда надо бывает через SSH что нибудь подправить. И в такие моменты не хватает выпадающей консоли
JhaoDa
@jhaoda
Jul 24 2015 22:13
@gaaarfild conemu умеет выпадать сверху экрана
Dinar Garipov
@garf
Jul 24 2015 22:32
@jhaoda То, что надо. Спасибо!
А есть ли еще какие нибудь SSH-клиенты типа путти, только которые могут юзать SSH-ключи?
Alexander Popov
@ruelephant
Jul 24 2015 22:33
Народ вопрос
если сделать дополнение к пыху, которое бы реализовала механизм сокетов (мультипоточный) с каллбеками в замыкания. Вы бы купили? :)
типо: $websocketServer = new WebSocket();
$websocketServer->newConnect(function($connect) { обработка } );
$websocketServer->run();
реализация на С..
Роман Сохарев
@greabock
Jul 24 2015 22:51
я - бомж
а вот кто-то покруче может и купил бы =)
JhaoDa
@jhaoda
Jul 24 2015 22:57
@gaaarfild XShell
Alexander Popov
@ruelephant
Jul 24 2015 23:02
This message was deleted
@greabock
это же получится полноценная замена богомерзкому node.js