These are chat archives for LaravelRUS/chat

13th
May 2014
Rineo
@rinaatt
May 13 2014 01:58
Добрый день, у меня есть проект среднего размера, (правда он закончен примерно только на 75%), он написан на CodeIgniter (для ORM используется Doctrine, для шаблонизации Twig). Подскажиет пожалуйста много ли придётся переписывать чтобы мигрировать на Laravel??
Maxim
@Big-Shark
May 13 2014 01:59
@rinaatt не думаю что особо много, да и мигрировать можно плавно, вначале просто переносим код, потом выпиливаем модули по 1 заменяя их на нужныенам
Rineo
@rinaatt
May 13 2014 02:02
Laravel позволяет простым способом подключить другой ORM? т.е. я бы хотел оставить Doctrine и Тwig
Maxim
@Big-Shark
May 13 2014 02:03
@rinaatt лараваль использует композер, так что проблем быть не должно
Rineo
@rinaatt
May 13 2014 02:04
Спасибо за ответы.
Roman
@TeroBlaZe
May 13 2014 03:35
@Amegatron лучше уметь всё самому делать ну или хорошо разбираться, так и в жизни не нае**т и не нужно будет от кого-то зависеть
Thomas Anderson
@elvendor
May 13 2014 05:48
Что с хабром?
slider23
@slider23
May 13 2014 05:50
Кто-то мощно задеплоил с утречка.
Джеффри начал серию про phpstorm https://laracasts.com/series/how-to-be-awesome-in-phpstorm
Alexander Zhuravlev
@SCIF
May 13 2014 06:00
К слову про шторм — сегодня снова попробовал юзать плагин для симфони. С пол года назад он делал что-то непотребное с моим штормом. Сейчас работает отлично и он реально упрощает жизнь. Вот уже больше, чем полдня, нахожусь под впечатлением.
Maxim
@Big-Shark
May 13 2014 06:00
@SCIF и что он такое делает?
Alexander Zhuravlev
@SCIF
May 13 2014 06:02
Очень приятно оживляет твиговские шаблоны — курит роуты по именам, показывает что где переопределил, позволяет перейти в родительский шаблон.
Делает подсказки при вызове сервисов!! $this->get('session') теперь возвращает не mixed :)
Это то, что бросилось в глаза. Там большой список заявленного. Частью я не пользуюсь, но уже то, что я увидел — хватает, чтобы считать его «must-have»
Maxim
@Big-Shark
May 13 2014 06:05
@SCIF судя по описанию, норм)
Alexander Zhuravlev
@SCIF
May 13 2014 06:13
@Big-Shark , меня вымораживало, что была заявлена поддержка твига в шторме, а по факту — только подсветка.
Maxim
@Big-Shark
May 13 2014 06:15
@SCIF мне кажется джет бреин вообще расслабился, заявленных фич куча, а по факту не очень и много) хотя это говорит человек который сидит на саблайме)
Thomas Anderson
@elvendor
May 13 2014 06:40
ни фига не пойму Unable to choose a translation for "cсылка|cсылки" with locale "ru"
что я неправильно делаю?
Alexander Zhuravlev
@SCIF
May 13 2014 06:43
@bayram4ik , так ты уже переведённое слово пытаешься перевести, судя из сообщения об ошибке
Thomas Anderson
@elvendor
May 13 2014 06:45
@SCIF вот что у меня в файле переводов
return [
    'name' => 'Ссылки',
    'menulinks' => 'cсылка|cсылки',
    'New'  => 'Новая ссылка',
    'Edit' => 'Редактировать',
];
Alexander Zhuravlev
@SCIF
May 13 2014 06:46
@bayram4ik , а код, который переводит?
Thomas Anderson
@elvendor
May 13 2014 06:49
@choice('menulinks::global.menulinks', $models->getTotal())
Thomas Anderson
@elvendor
May 13 2014 06:57
Сейчас работает, но я не понял как =)
Алексей Данчин
@Aleksey-Danchin
May 13 2014 08:07
Ух, нас 100 =)
Всем привет
Alexander Zhuravlev
@SCIF
May 13 2014 08:11
@Aleksey-Danchin , нас 10 :) А 100 — это всего хоть раз посетивших данный канал, судя по всему.
Алексей Данчин
@Aleksey-Danchin
May 13 2014 08:12
@SCIF оу...
slider23
@slider23
May 13 2014 08:15
Сейчас нас 4 онлайн.
Alexander Zhuravlev
@SCIF
May 13 2014 08:18
К тому же не 100, а 121
Twent
@twent
May 13 2014 08:20

Всем привет.
Касаемо вчерашнего вопроса контроля ролей пользователей. Решил сделать фильтр на принадлежность к группе. Возможно ли это упростить? Фильтры содержат можно одно и тоже, меняется только название группы.

Route::filter('admin', function()
{
    try
    {
        $user = Sentry::getUser();

        if (!$user->inGroup(Sentry::findGroupByName('Administrator')))
        {
            return Redirect::to('user/dashboard')->withMessage('Вы не принадлежите к группе Администраторов');
        }
    }
    catch (Cartalyst\Sentry\Users\UserNotFoundException $e)
    {
        return Redirect::to('user/dashboard')->withMessage('Пользователь не найден!');
    }
    catch (Cartalyst\Sentry\Groups\GroupNotFoundException $e)
    {
        return Redirect::to('user/dashboard')->withMessage('Группа не найдена!');
    }
});

Route::filter('moder', function()
{
    try
    {
        $user = Sentry::getUser();

        if (!$user->inGroup(Sentry::findGroupByName('Moderator')))
        {
            return Redirect::to('user/dashboard')->withMessage('Вы не принадлежите к группе Модераторов');
        }
    }
    catch (Cartalyst\Sentry\Users\UserNotFoundException $e)
    {
        return Redirect::to('user/dashboard')->withMessage('Пользователь не найден!');
    }
    catch (Cartalyst\Sentry\Groups\GroupNotFoundException $e)
    {
        return Redirect::to('user/dashboard')->withMessage('Группа не найдена!');
    }
});

Route::filter('user', function()
{
    try
    {
        $user = Sentry::getUser();

        if (!$user->inGroup(Sentry::findGroupByName('User')))
        {
            return Redirect::to('user/dashboard')->withMessage('Вы не принадлежите к группе Полльзователей');
        }
    }
    catch (Cartalyst\Sentry\Users\UserNotFoundException $e)
    {
        return Redirect::to('user/dashboard')->withMessage('Пользователь не найден!');
    }
    catch (Cartalyst\Sentry\Groups\GroupNotFoundException $e)
    {
        return Redirect::to('user/dashboard')->withMessage('Группа не найдена!');
    }
});

Использую вот так:
```
Route::group(array('before' => 'admin'), function () {
Route::get('/problems/{problem}', 'DashController@getProblem');});

Route::group(array('before' => 'admin'), function () {
    Route::get('/problems/{problem}', 'DashController@getProblem');
});
Alexander Zhuravlev
@SCIF
May 13 2014 08:25
@twent , обычно такие вещи «контроллерозависимы» и я выношу в контроллер.
Алексей Данчин
@Aleksey-Danchin
May 13 2014 08:28

@SCIF так он и выносит в контроллер:

DashController@getProblem

Другое дело, что это не RUST

Rafkat Galiullin
@neolite
May 13 2014 08:29
Привет коллеги! Пожскажите, а то у меня тупняк. Не авторизует ларавел :(
Алексей Данчин
@Aleksey-Danchin
May 13 2014 08:30
@neolite ошибка? Или что?
Twent
@twent
May 13 2014 08:30

@SCIF То есть, что-то в этом роде?

pubic function isAdmin() 
{
    ///
}

public function isModer()
{
    ///
}

И при выводе проверка

if(User::isAdmin)
{
///
)
```
Или что-то другое имеется в виду?

Rafkat Galiullin
@neolite
May 13 2014 08:32
@Aleksey-Danchin Auth::attempt проходит, но кука не ставится
Alexander Zhuravlev
@SCIF
May 13 2014 08:32
@Aleksey-Danchin , я имел ввиду не использовать Route::filter(), а так http://laravel.com/docs/controllers#controller-filters
Убежал
Алексей Данчин
@Aleksey-Danchin
May 13 2014 08:33
@neolite ого, это странно. Из коробки ставится. Что в app/conf/aut.php ?
И как ты понял, что Auth::attempt проходит?
Alexander Egorov
@Amegatron
May 13 2014 08:34
@Aleksey-Danchin странный вопрос, на верное потому, что возвращает true =)
Алексей Данчин
@Aleksey-Danchin
May 13 2014 08:35
@Amegatron ну мало ли, вдруг он по другому тестит
О, дождик
Rafkat Galiullin
@neolite
May 13 2014 08:35
какой тег для исходного текста?
Алексей Данчин
@Aleksey-Danchin
May 13 2014 08:35
тут есть "markdown help", посмотри там
Rafkat Galiullin
@neolite
May 13 2014 08:36
```php
if ($validation->passes())
{
      //  dd($input);
        if (Auth::attempt($input,$remember))
        {

            dd(Auth::getUser());
            return Redirect::intended('dashboard');
        }

    }
возвращает модель
а при редиректе на дашбоард - null
Алексей Данчин
@Aleksey-Danchin
May 13 2014 08:39
А куки вообще пусты?
Rafkat Galiullin
@neolite
May 13 2014 08:42
ставится кука remember_(хеш)
Alexander Egorov
@Amegatron
May 13 2014 08:44
пробовал менять $remember ?
просто на форуме кто-то отписался, что у него тоже кука не ставится посредством Cookie
Алексей Данчин
@Aleksey-Danchin
May 13 2014 08:45
А может у тебя нет remember_token в таблице?
Alexander Egorov
@Amegatron
May 13 2014 08:45
так что не исключено, что проблема общая у вас
Rafkat Galiullin
@neolite
May 13 2014 08:48
не не пробовал
remember_token стоит, ларавел обновлен до последней версии. причем ремембер токен не ставит в таблицу при авторизации
Алексей Данчин
@Aleksey-Danchin
May 13 2014 08:49
@neolite http://laravel.com/docs/security
Note: Before getting started, make sure that your users (or equivalent) table contains a nullable, string remember_token column of 100 characters. This column will be used to store a token for "remember me" sessions being maintained by your application.
Twent
@twent
May 13 2014 08:55
@SCIF , создал методы для роута в контроллере, как теперь их использовать именно для определенного метода?
Route::group(array('before' => 'admin'), function () {
    Route::get('/problems/{problem}', 'DashController@getProblem');
});
Алексей Данчин
@Aleksey-Danchin
May 13 2014 08:57
@twent что?
Twent
@twent
May 13 2014 08:59
@Aleksey-Danchin , цитирую @SCIF : "я имел ввиду не использовать Route::filter(), а так http://laravel.com/docs/controllers#controller-filters"
Twent
@twent
May 13 2014 09:10
Ладно, пока оставлю фильтры.
такое тоже бывает на оф сайте
Orel
@2byte
May 13 2014 09:38
@Butochnikov вышел 4.2 ?
Alexey
@Butochnikov
May 13 2014 09:38
только beta 1
Orel
@2byte
May 13 2014 10:19
@Butochnikov еще не опубликована новость на laravel.ru (
Thomas Anderson
@elvendor
May 13 2014 10:22
2 пользователя, 7 пользователей, 21 пользователь ... Как в ларике правильно переводить? :)
с инглишом то все просто, а вот в русском языке надо повозиться еще
Orel
@2byte
May 13 2014 10:23
А в нем есть разве такая функция
Thomas Anderson
@elvendor
May 13 2014 10:25
@2byte ну да
Lang::choice('main.users', 21);
Alexander Egorov
@Amegatron
May 13 2014 10:25
В лаирике из коробки такого нет для русского языка. Там есть что-то вроде плюралайзера, но только для английского языка. Для русского придется искать решения
Thomas Anderson
@elvendor
May 13 2014 10:25
@Amegatron, а может пакет какой знаешь?
Alexander Egorov
@Amegatron
May 13 2014 10:25
не, нужно гуглить алгоритм
не факт что именно пакет найдешь готовый, но алго 100% должен найтись
Thomas Anderson
@elvendor
May 13 2014 10:26
алгоритм встречал, а он подойдет к ларику, или дописать надо функционал?
Alexander Egorov
@Amegatron
May 13 2014 10:27
вообще если у тебя только слово "пользователь", то тут все просто
я уже делал подобное
а если вообще произвольные русские слова, то надо искать алго продвинутый
щас скину свой код, найденный непомню где
Thomas Anderson
@elvendor
May 13 2014 10:28
ну есть не очень красивый выход.. типа пользователей: 7
но перфекционизм кричит "Нееееет, только не так!" :D
Alexander Egorov
@Amegatron
May 13 2014 10:30
нет, тут по-другому
нашел класс, но не из лариковского проекта
<?php

class Helper_Morphology {

    private function plural ($a){
        if ($a % 10 == 1 && $a % 100 != 11) {
            return 0;
        } elseif ($a % 10 >= 2 && $a % 10 <= 4 && ($a % 100 < 10 || $a % 100 >= 20)) {
            return 1;
        } else {
            return  2;
        }
    }

    public function pluralStr ($i, $str1, $str2, $str3){

        $plural= $this->plural ($i);
        switch ($plural) {
            case 0:
                $out_str = $str1;
                break;
            case 1:
                $out_str = $str2;
                break;
            default:
                $out_str = $str3;
        }
        return $out_str;
    }

    public function getPluralMonths($n) {
        return $this->pluralStr($n, "месяц", "месяца", "месяцев");
    }

    public function getPluralYears($n) {
        return $this->pluralStr($n, "год", "года", "лет");
    }

    public function getPluralDays($n) {
        return $this->pluralStr($n, "день", "дня", "дней");
    }

}
Thomas Anderson
@elvendor
May 13 2014 10:31

ОО! прям в официальной документации написано:

You may also supply a locale argument to specify the language. For example, if you want to use the Russian (ru) language:

echo Lang::choice('товар|товара|товаров', $count, array(), 'ru');
Alexander Egorov
@Amegatron
May 13 2014 10:31
соотв-но надо как-то к ларику его прикрурить, вариантов много
а, ну тогда збс
логика использования такая же, как и у меня
Thomas Anderson
@elvendor
May 13 2014 10:31
Видать недавно появилось, точно обратил бы внимание раньше
Но за код все равно спасибо!
Alexander Egorov
@Amegatron
May 13 2014 10:32
;)
может и пригодится когда-нибудь )
Thomas Anderson
@elvendor
May 13 2014 10:37
пора начать пользоваться Gist'ом :)
Alexander Egorov
@Amegatron
May 13 2014 10:39
я на packalyst ищу пакеты
Thomas Anderson
@elvendor
May 13 2014 10:40
не, я к тому что снипеты некоторые хранить там
Alexander Egorov
@Amegatron
May 13 2014 10:40
тогда я не допонял, я думал ты про пакеты на packagist =)
Thomas Anderson
@elvendor
May 13 2014 10:43
слушай, работает на ура плюралайзер!
Alexander Egorov
@Amegatron
May 13 2014 10:47
ну я не удивлен ) это же ларик )
Thomas Anderson
@elvendor
May 13 2014 10:49
:+1:
Alexander Egorov
@Amegatron
May 13 2014 10:55
жесть, на хабре даже придрались, что в ларике для вывода в шаблоне нужно писать три фигурные скобки ... мол слишком много ... я в шоке )
Rafkat Galiullin
@neolite
May 13 2014 10:56
инерция мышления, должен же он быть чем то хуже йии)
Alexander Egorov
@Amegatron
May 13 2014 10:57
плюсую )
мне как-то даже лучеш от того, что на ларике писать не ломяться кто попало ... это как священный грааль, не всем суждено к нему прикоснться и принять его силу :D
Orel
@2byte
May 13 2014 10:58
Так можно же поменять эти скобки на что угодно если не нравится
Alexander Egorov
@Amegatron
May 13 2014 10:59
пускай это останется нашей маленькой тайной :D
Orel
@2byte
May 13 2014 10:59
:+1:
Thomas Anderson
@elvendor
May 13 2014 11:00
хах, обажаю выражаться такими терминами как "Священный Грааль" или что-то околофентезийное.. Сейчас за окном черные тучи и я коллеге говорю "Враг не дремлет. Око Саурона рыщет" :D
три скобки это сила! меня{% var|raw %} как то не прикалывает
Orel
@2byte
May 13 2014 11:04
Да % не вкатывает
Thomas Anderson
@elvendor
May 13 2014 11:04
В гиттере не хватает live-парсера markdown
Rafkat Galiullin
@neolite
May 13 2014 11:04
давайте {$ поставим
Orel
@2byte
May 13 2014 11:05
Вот мне так хочется юзать переменные без $ )
Rafkat Galiullin
@neolite
May 13 2014 11:05
или {*habratag* $text *habratag*}
Orel
@2byte
May 13 2014 11:06
Вот мне нравится редактор как http://stackoverflow.com/questions/23629491/mongo-db-full-text-search такого не изобретают ?
Alexander Egorov
@Amegatron
May 13 2014 11:10
ну я впервый раз встречаю такую разметку, думаю они сами писали редактор
Orel
@2byte
May 13 2014 11:12
Ну конечно сами, я же и спрашиваю, может такой редактор кто нибудь выпускает
VitaliiSestrenskyi
@VitaliiSestrenskyi
May 13 2014 11:13
Здраствуйте. Помогите найти ошибку.
в путях прописал - Route::controller('admin/categories', 'CategoriesController');
в контроллере CategoriesController.php создал метод
public function getIndex(){ return View::make('categories.index') ->with('categories', Category::all()); }
Также создал view. У меня стоит Xampp 1.8.3. Пробую запустить http://localhost/ecomm/admin/categories
выдает что "Object not found!" . Пути и все остальное вроде верно прописал но не работает. Подскажите в чем може ыть проблема.Спасибо.
Rafkat Galiullin
@neolite
May 13 2014 11:17
@Aleksey-Danchin все решилось, у меня окружение было тестинг, и в конфигах лежал файл testing/session.php в котором был указан всего один драйвер - array
Alexander Egorov
@Amegatron
May 13 2014 11:17
@VitaliiSestrenskiy нужно более подробное сообщение об ошибке
так непонятно
VitaliiSestrenskyi
@VitaliiSestrenskyi
May 13 2014 11:18

Object not found!

The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again.

If you think this is a server error, please contact the webmaster.
Error 404
localhost
Apache/2.4.7 (Win32) OpenSSL/1.0.1e PHP/5.5.9

Alexander Egorov
@Amegatron
May 13 2014 11:19
тут я не очень уверен, просто никогда не ставил ларик в подпапку на домене
всегда в корне домена все делал
но можно сказать, что до ларика дело даже не доходит
ошибка в конфигурации сервера скорее всего
VitaliiSestrenskyi
@VitaliiSestrenskyi
May 13 2014 11:20
http://localhost/ecomm/public/ загружается нормально.
Alexander Egorov
@Amegatron
May 13 2014 11:20
=)
ну в этом и проблема
а почему ты решил, что /ecomm/admin/categories будет открываться "через" ларика?
Twent
@twent
May 13 2014 11:21
@VitaliiSestrenskiy php artisan serve пробовали?
Alexander Egorov
@Amegatron
May 13 2014 11:22
в общем нужно настроить апач, чтобы по localhost/ecomm он смотрел в ecomm/public
VitaliiSestrenskyi
@VitaliiSestrenskyi
May 13 2014 11:23
запускал php artisan serve потом вводил localhost:8000/admin/categories выдает уже "Whoops, looks like something went wrong."
Twent
@twent
May 13 2014 11:24
какая ошибка конкретно была?
VitaliiSestrenskyi
@VitaliiSestrenskyi
May 13 2014 11:25
Object not found!

The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again.

If you think this is a server error, please contact the webmaster.
Error 404
localhost
Apache/2.4.7 (Win32) OpenSSL/1.0.1e PHP/5.5.9
Alexander Egorov
@Amegatron
May 13 2014 11:30
это ошибка сервера, а на Ларика
Twent
@twent
May 13 2014 11:30
Включите режим разработчика 'debug' => true, в файле app/confg/app.php и попробуете еще раз через localhost:8080/admin/categories с php artisan serve или http://localhost/ecomm/public/admin/categories
slider23
@slider23
May 13 2014 11:30
а в xampp нельзя домен сделать, только в localhost все держать ?
Alexander Egorov
@Amegatron
May 13 2014 11:31
до должно быть можно, просто найти конфиги апача
slider23
@slider23
May 13 2014 11:31
не пропускать public в урлах
VitaliiSestrenskyi
@VitaliiSestrenskyi
May 13 2014 11:34
спасибо за помощь.
slider23
@slider23
May 13 2014 11:39
Набор разных мелких полезных функций: https://github.com/ilya-dev/belt
slider23
@slider23
May 13 2014 11:58
Кстати, Today at 16:53:20 GMT, it'll be 1400000000 in Unix time. http://www.epochconverter.com/
19:53:20 по Москве
Alexander Egorov
@Amegatron
May 13 2014 12:00
я как то хотел поймать и отметить 1234567890 unix, но забыл потом и пропустил )
Orel
@2byte
May 13 2014 12:02

Помогите с запросом

public function getNewFriend($user_id)
    {
        /**
         * Поиск пользователей у которых счетчик добавленных друзей больше 0,
         * которые ожидают себе друзей
         */
        $getUsers = User :: select('id','vk','name','avatar','refid')
            ->whereNotIn('id',  array($user_id))
            ->orWhere('lvl', 1)
            ->where('count_friend', '>', 0);

        $refid = User :: find($user_id)->refid;
        if ($refid) {
            $getUsers->orWhereRaw('id=?', array($refid));
        }

        $getUsers2 = $getUsers->whereNotExists(function ($query) {
                $query->from = 'friend';
                $query->whereRaw('friend.user_to=users.id');
            })
            ->orderBy('lvl', 'DESC')
            ->limit(20)
            ->get();

        return $getUsers2;
    }

Задача если пользователь реферельный, нужно выбрать того, кто его пригласил, и получить коллекцию отсортированную таким образом, пригласившей в самом начале, вот этот кусок

$refid = User :: find($user_id)->refid;
        if ($refid) {
            $getUsers->orWhereRaw('id=?', array($refid));
        }
slider23
@slider23
May 13 2014 12:08
а первый запрос точно нормальный sql генерит ?
Orel
@2byte
May 13 2014 12:12

$getUsers2 удалил, норм

select `id`, `vk`, `name`, `avatar`, `refid` from `users` where `id` not in (?) or `lvl` = ? and `count_friend` > ? or id=? and not exists (select * from `friend` where friend.user_to=users.id) order by `lvl` desc limit 20

Но не находит ничего

slider23
@slider23
May 13 2014 12:16
в запросе нигде скобки не нужны ? or и and так смело рядом..
Orel
@2byte
May 13 2014 12:21
Ну лара без скобок собирает
Хотя echo $users->count(); выводит 3, так и должно быть, но foreach ничего не выводит
Alexander Egorov
@Amegatron
May 13 2014 12:22

Ну лара без скобок собирает

почитай доки, скобки можно расставлять

Orel
@2byte
May 13 2014 12:25

@Amegatron

->orWhere(function ($query) {
                $query->where('votes', '>', 100)
                      ->where('title', '<>', 'Админ');
            })

?

Alexander Egorov
@Amegatron
May 13 2014 12:26
ну как-то так
Orel
@2byte
May 13 2014 12:29

Сделал

/**
         * Поиск пользователей у которых счетчик добавленных друзей больше 0,
         * которые ожидают себе друзей
         */
        $getUsers = User :: select('id','vk','name','avatar','refid')
            ->whereNotIn('id',  array($user_id))
            ->orWhere(function ($query) {
                $query->where('lvl', 1);
            })
            ->where(function ($query) {
                $query->where('count_friend', '>', 0);
            });

        $refid = User :: find($user_id)->refid;
        if ($refid) {
            $getUsers->orWhere(function ($query) use($refid) {
                $query->whereRaw('id=?', array($refid));
            });
        }

        $getUsers->whereNotExists(function ($query) {
                $query->from = 'friend';
                $query->whereRaw('friend.user_to=users.id');
            })
            ->orderBy('lvl', 'DESC')
            ->limit(20)
            ->get();

        return $getUsers;

Создается ок

[query] => select `id`, `vk`, `name`, `avatar`, `refid` from `users` where `id` not in (?) or (`lvl` = ?) and (`count_friend` > ?) or (id=?) and not exists (select * from `friend` where friend.user_to=users.id) order by `lvl` desc limit 20
            [bindings] => Array
                (
                    [0] => 4
                    [1] => 1
                    [2] => 0
                    [3] => 1
                )

            [time] => 0.34

А вот выводить не хочет, $users->count() считает, ничего не пойму

slider23
@slider23
May 13 2014 12:31
whereNotIn в блок where помести
вот это все ломает
$refid = User :: find($user_id)->refid;
        if ($refid) {
            $getUsers->orWhereRaw('id=?', array($refid));
        }
`id` not in (?) or (`lvl` = ?) and (`count_friend` > ?) or (id=?) and not exists
каша
Orel
@2byte
May 13 2014 12:33
@slider23 whereNotIn работал и так, закоментил нет эффекта
@slider23 ну вот такие вот условия нужны
slider23
@slider23
May 13 2014 12:34
Сделай несколькими запросами
Orel
@2byte
May 13 2014 12:34
Несколькими будет вообще кашеварка
slider23
@slider23
May 13 2014 12:34
Или пиши $getUsers->orWhereRaw('id=?', array($refid)); внутри orWhere
Orel
@2byte
May 13 2014 12:35
@slider23 и так
$getUsers->orWhere(function ($query) use($refid) {
                $query->whereRaw('id=?', array($refid));
            });
Alexander Zhuravlev
@SCIF
May 13 2014 12:36
susy + compass ниндзи есть в чатеге?
slider23
@slider23
May 13 2014 12:36
напиши sql-запрос руками, а потом переведи в qbuilder форму
select `id`, `vk`, `name`, `avatar`, `refid` from `users` where 
(`id` not in (?) or (`lvl` = ?)  or (id=?) ) 
and (`count_friend` > ?) 
and not exists (select * from `friend` where friend.user_to=users.id) 
order by `lvl` desc limit 20
так ?
Orel
@2byte
May 13 2014 12:38
@slider23 запрос нормальный создается
select `id`, `vk`, `name`, `avatar`, `refid` from `users` where `id` not in (?) or (`lvl` = ?) and (`count_friend` > ?) or (id=?) and not exists (select * from `friend` where friend.user_to=users.id) order by `lvl` desc limit 20
Alexander Egorov
@Amegatron
May 13 2014 12:41

а тут правильно?

$getUsers->orWhere(function ($query) use($refid) {
                $query->whereRaw('id=?', array($refid));
            });

в чем смысл группировать одно условие в скобки?

slider23
@slider23
May 13 2014 12:45
если count() показывает правильно, посмотри вар-дампом, что внутри
Orel
@2byte
May 13 2014 12:48
Там много чего, страница полностью не грузится
Orel
@2byte
May 13 2014 12:54
$getUsers = \DB :: select('select `id`, `vk`, `name`, `avatar`, `refid` from `users` where
(`id` not in (?) or (`lvl` = ?)  or (id=?) )
and (`count_friend` > ?)
and not exists (select * from `friend` where friend.user_to=users.id)
order by `lvl` desc limit 20', array($user_id, 1, $refid = User :: find($user_id)->refid, 0));
        print_r($getUsers);exit;
Гуд, возвращает массив с данными
slider23
@slider23
May 13 2014 12:54
а без скобок не возвращал ?
значит запрос был неправильным.
если много or и and - без скобок нельзя
Orel
@2byte
May 13 2014 12:58
Без скобок не знаю, в любом случаи count() считал

Создаем такой же запрос конструктором

$getUsers = User :: select('id','vk','name','avatar','refid')
            ->orWhere(function ($query) use($user_id){
                $query->whereNotIn('id',  array($user_id));
                $query->where('lvl', 1);

                $refid = User :: find($user_id)->refid;
                if ($refid) {
                    $query->orWhereRaw('id=?', array($refid));
                }

            })
            ->where(function ($query) {
                $query->where('count_friend', '>', 0);
            });



        $getUsers->whereNotExists(function ($query) {
                $query->from = 'friend';
                $query->whereRaw('friend.user_to=users.id');
            })
            ->orderBy('lvl', 'DESC')
            ->limit(20)
            ->get();

Выполнение

 [query] => select `id`, `vk`, `name`, `avatar`, `refid` from `users` where (`id` not in (?) and `lvl` = ? or id=?) and (`count_friend` > ?) and not exists (select * from `friend` where friend.user_to=users.id) order by `lvl` desc limit 20
            [bindings] => Array
                (
                    [0] => 4
                    [1] => 1
                    [2] => 1
                    [3] => 0
                )

            [time] => 0.38

count() считает, коллекции не выводятся, какой-то баг

Roman
@TeroBlaZe
May 13 2014 13:03

@Amegatron

мне как-то даже лучеш от того, что на ларике писать не ломяться кто попало ... это как священный грааль, не всем суждено к нему прикоснться и принять его сил

Ахахах просто плюсую 100 раз :D :D

@2byte Иногда в выявлении проблем помогает упрощение, пробуй упрощать свой запрос, выносить куски в скоупы
Orel
@2byte
May 13 2014 13:11
@TeroBlaZe мне нужно именно одним запросом получить именно список из 20 результатов, отсортированный так как я указал выше)

@Amegatron

мне как-то даже лучеш от того, что на ларике писать не ломяться кто попало ... это как священный грааль, не всем суждено к нему прикоснться и принять его сил

Тебе нужно это затвитить :+1:

slider23
@slider23
May 13 2014 13:18
Запросы получились разные. $query->where('lvl', 1); - тут orWhere нужно
Orel
@2byte
May 13 2014 13:22
Ну это да, но все же 1 результат но есть
Вот нашел причину, если все в один объект запихнуть, коллекция возвращается
$getUsers = User :: select('id','vk','name','avatar','refid')
            /*->orWhere(function ($query) use($user_id){
                $query->whereNotIn('id',  array($user_id));
                $query->orWhere('lvl', 1);

                $refid = User :: find($user_id)->refid;
                if ($refid) {
                    $query->orWhereRaw('id=?', array($refid));
                }

            })*/
            /*->where(function ($query) {
                $query->where('count_friend', '>', 0);
            })*/


        /*$getUsers->whereNotExists(function ($query) {
                $query->from = 'friend';
                $query->whereRaw('friend.user_to=users.id');
            })*/
            ->orderBy('lvl', 'DESC')
            ->limit(20)
            ->get();
Вот так норм, но мне надо добавлять условия, что делать?
$getUsers = User :: select('id','vk','name','avatar','refid')
            ->orWhere(function ($query) use($user_id){
                $query->whereNotIn('id',  array($user_id));
                $query->orWhere('lvl', 1);

                $refid = User :: find($user_id)->refid;
                if ($refid) {
                    $query->orWhereRaw('id=?', array($refid));
                }

            })
            ->where(function ($query) {
                $query->where('count_friend', '>', 0);
            });


        $get = $getUsers->whereNotExists(function ($query) {
                $query->from = 'friend';
                $query->whereRaw('friend.user_to=users.id');
            })
            ->orderBy('lvl', 'DESC')
            ->limit(20)
            ->get();

        return $get;
Сработало
Orel
@2byte
May 13 2014 13:43
Как можно вот результат из условия $query->orWhereRaw('id=?', array($refid)); поставить нулевым в коллекции ?
Shappy
@Formcd
May 13 2014 14:31
Привет всем... При выборке из модели использую ->firstOrFail для обработки надо подписаться на событие ModelNotFoundException, так вот... Где подписываться?:))
Maxim
@Big-Shark
May 13 2014 14:32
@Formcd в старт или в глобал, я точно не помню где идет обработка ошибок
Shappy
@Formcd
May 13 2014 14:32
@Big-Shark Спасибо, ща посмотрю..
slider23
@slider23
May 13 2014 14:34
app/start/global.php
или в своем сервис-провайдере, если хочется код логичнее расположить
Shappy
@Formcd
May 13 2014 14:36
@slider23 Спасибо... :)
Roman
@TeroBlaZe
May 13 2014 14:59
с нами тут случайно нет спецов по Java? Которые смогли бы мне помочь разобраться с некоторой магией
Brezhnev Ivan
@vanchelo
May 13 2014 15:08
Язык без типов данных — первый шаг к резиновой женщине;
Roman
@TeroBlaZe
May 13 2014 15:09
это ты о php? XD
Brezhnev Ivan
@vanchelo
May 13 2014 15:09
это не я и не о пхп)
VitaliiSestrenskyi
@VitaliiSestrenskyi
May 13 2014 15:24
кто то использует phpstom + xampp???
Roman
@TeroBlaZe
May 13 2014 15:32
я использую шторм и winginx
VitaliiSestrenskyi
@VitaliiSestrenskyi
May 13 2014 15:38

как правильно настроить xdebug ? в файле php.ini прописал:

[XDebug]
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
xdebug.profiler_append = 0
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = "C:\xampp\tmp"
xdebug.profiler_output_name = "cachegrind.out.%t-%s"
xdebug.remote_enable = 0
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "127.0.0.1"
xdebug.trace_output_dir = "C:\xampp\tmp"

xdebug.remote_autostart = on

в настройках самого шторма добавил папку где у меня ларавел с проектом. Ставлю точку запускаю в URL воше получаю "http://www.ecomm.com/?XDEBUG_SESSION_START=16860" и ошибку

This domain is missing from the Web server configuration

The domain name is correctly pointing at a valid Web server. This Web server does not recognize this domain name as a valid Web site.

If you are the Webmaster please contact Technical Support.

Понимаю что где то натупил.но где не знаю,

slider23
@slider23
May 13 2014 15:45
где ты эту ошибку получаешь ?
для нормальной работы нужно поставить в браузере хелпер для xdebug. вот для хрома: https://chrome.google.com/webstore/detail/xdebug-helper/eadndfjplgieldjbigjakmdgkmoaaaoc
хелпер записывает в куку (а не в урл) ключ запуска xdebug
мои настройки:
xdebug.default_enable = 1
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
debug.remote_host = "localhost"
xdebug.remote_port = 9000
VitaliiSestrenskyi
@VitaliiSestrenskyi
May 13 2014 15:50
сейчас попробую исправить.
slider23
@slider23
May 13 2014 15:51
сейчас, еще настройки шторма
Roman
@TeroBlaZe
May 13 2014 15:52
а разве в шторме что-то нужно настраивать? у меня и так все работает
slider23
@slider23
May 13 2014 15:54
Надо проверить, чтобы Ide key было одинаковое и у хелпера и в шторме
на тулбаре выпадающее меню, не нашел его в настройках, там есть Edit configuration
Плюс -> PHP Remote debug
Name от балды, Ide key - строка, я поставил xdebug
У хелпера в настройках тоже ставлю xdebug
slider23
@slider23
May 13 2014 16:00
После этого нажимая на тулбаре Start Listen for PHP Xdebug Connection (телефоная трубка) И включая хелпер в браузере, обновляя страницу, включается xdebug и исполнение останавливается на брекпойнтах.
VitaliiSestrenskyi
@VitaliiSestrenskyi
May 13 2014 16:01
извени канешно, но я не много не понял "на тулбаре выпадающее меню, не нашел его в настройках, там есть Edit configuration" это в шторме смотреть ??? куда нада заходить?
slider23
@slider23
May 13 2014 16:02
В шторме на тулбаре, я не могу пока найти, где это в меню
Тулбар включается View - Toolbar
вот этот кусок - http://take.ms/bpzz7
А, нашел - Run - Edit configuration
VitaliiSestrenskyi
@VitaliiSestrenskyi
May 13 2014 16:07
сделал все но там где настройки сервера что нужно прописовать?
папку где проект?
slider23
@slider23
May 13 2014 16:10
а, точно, сервер еще. да, папку где проект можно, не знаю как с ксампом это заработает, там всего один домен - localhost. надо пробовать.
Roman
@TeroBlaZe
May 13 2014 16:16
Не нужно никакие run configuration Настраивать. Нужно просто загуглить http://habrahabr.ru/sandbox/77402/
  1. Ставшь дополнение xdebug в хром, в настройках IDE key ставишь в PhpStorm
  2. Включаешь xdebug в php.ini и подключаешь его в IDE по статье которую я дал и профит
Brezhnev Ivan
@vanchelo
May 13 2014 16:21
как не совсем логично выглядит в контроллерах Yii префиксы action, после ларавел)
Roman
@TeroBlaZe
May 13 2014 16:22
ты 3м не пользовался?
Brezhnev Ivan
@vanchelo
May 13 2014 16:23
3-м чем?
Roman
@TeroBlaZe
May 13 2014 16:23
3-им ларавелом
Brezhnev Ivan
@vanchelo
May 13 2014 16:23
у меня на нем сайты есть
public function get_index()
{
    return Redirect::to('/');
}
public function get_login()
{
    return View::make('account.login');
}
Brezhnev Ivan
@vanchelo
May 13 2014 16:25
у меня restful контроллеры
Roman
@TeroBlaZe
May 13 2014 16:26
ну так смысл же не в этом был
slider23
@slider23
May 13 2014 16:27
через полчаса будет unix time 1400000000 , у нас же 4 часа с гринвичем, а не три
Brezhnev Ivan
@vanchelo
May 13 2014 16:27
смысл в то что я action_ не использовал
Roman
@TeroBlaZe
May 13 2014 16:27
но он же был
Brezhnev Ivan
@vanchelo
May 13 2014 16:28
@slider23 прикольно))
@TeroBlaZe но его то можно не использовать
Roman
@TeroBlaZe
May 13 2014 16:52
Кто-то будет отмечать?
А я поздравляю)
Roman
@TeroBlaZe
May 13 2014 17:04
конечно же не знаю%)
Corvus
@BlahBlag
May 13 2014 17:05
здравствуйте, парни. Такая проблема, я отправляю форму ajax запросом а данные отправляю с помощью serialize() проблема в том, что радиобаттоны передаются и input hidden нет
Roman
@TeroBlaZe
May 13 2014 17:06
уже обсуждали что-то такое
Alexander Egorov
@Amegatron
May 13 2014 17:09
@Butochnikov проголосовал за Ларик конечно, но писать ничего не стал - что-то устал я со вчерашнего дня расхваливать Ларик =) Вдохновение иссякло на этот счет =)
Roman
@TeroBlaZe
May 13 2014 17:10
кошмар! этот хром ест уже 3гб озу
Alexey
@Butochnikov
May 13 2014 17:11
@Amegatron отдыхай, ты столько комментов написал...
VitaliiSestrenskyi
@VitaliiSestrenskyi
May 13 2014 17:17
@TeroBlaZe "кошмар! этот хром ест уже 3гб озу" ужас=)
Alexey
@Butochnikov
May 13 2014 17:17
и на 4-й рот разевает )))
Corvus
@BlahBlag
May 13 2014 17:20
эй так что мне делать?
Roman
@TeroBlaZe
May 13 2014 17:20
@BlahBlag эй так отмотай на пару дней назад и почитай
Corvus
@BlahBlag
May 13 2014 17:21
@TeroBlaZe да ее не найти я отматывал
Roman
@TeroBlaZe
May 13 2014 17:21
щас я скопирую
slider23
@slider23
May 13 2014 17:22
"эй так что мне делать?" вообще-то во все времена было принято гуглить
Corvus
@BlahBlag
May 13 2014 17:23
@slider23 я гуглил.
Все это перепробовал ?
Corvus
@BlahBlag
May 13 2014 17:24
мда опять я облажался
забыл неймы расставить
извините
Roman
@TeroBlaZe
May 13 2014 17:27
@BlahBlag вот как раз про это там и было написано.
P.S. лол я перед тем как написать отматывал и находил сообщения за 12 число, потом перезапустил браузер, отмотал заного и нашел совершенно другие сообщения, которых я даже не видел за то же число :worried:
Alexander Egorov
@Amegatron
May 13 2014 17:40

@Butochnikov

https://twitter.com/fortrabbit/status/466266272443797504/photo/1

Это очень здорово, надо признать. PHP-сообщество движется в правильном направлении =))

Alexey
@Butochnikov
May 13 2014 17:42
@Amegatron ага, уже везде разместил http://vk.com/wall-53758340_2985 )))
походу холивар устроят таки ))
Brezhnev Ivan
@vanchelo
May 13 2014 17:50
кушайте фрукты)) укрепляйте иммунитет от холиваров)
Alexander Egorov
@Amegatron
May 13 2014 17:50
не, холивара не будет, вангую
Alexey
@Butochnikov
May 13 2014 17:50
)))
slider23
@slider23
May 13 2014 20:10
Хозяйке на заметку - если у вас внезапно начало выдавать 404 на все урлы кроме морды - проверьте, не стоит ли у вас в роутах первым Route::controller('/', 'HomeController'); :)
Сейчас чуть умом не тронулся. :)
Переделал все роуты на Route::controller и морду заодно захватил случайно. А её так делать нельзя, иначе этот роут все урлы цеплять будет.
Alexander Egorov
@Amegatron
May 13 2014 20:13
Да, было у меня такое, тоже =)
Brezhnev Ivan
@vanchelo
May 13 2014 20:29
вас скорость работы лары устраивает?
или вообще какое приемлемое время генерации страницы для вас?
Alexander Egorov
@Amegatron
May 13 2014 20:31
я пока не задавался этим вопросом, так как у меня сайты простые, посещаемость низкая
Brezhnev Ivan
@vanchelo
May 13 2014 20:32
у меня на ларе и на джанге два простых одинаковых сайта
так вот джанго в разы быстрее генерит страницу
хотя в дажнге кода очень много, имею ввиду сам фрейм
может из-за того что питон компилиться, хз
Alexander Egorov
@Amegatron
May 13 2014 20:33
попробуй FLOW(3) и поймешь, что такое долгая генерация страницы :D
Brezhnev Ivan
@vanchelo
May 13 2014 20:34
надо уже пробовать ларика и HHVM
Alexey
@Butochnikov
May 13 2014 20:34
а цифры какие?
Roman
@TeroBlaZe
May 13 2014 20:35
@slider23 я тоже как-то c Route::controller('/') обломался)) после чего поставил этот роут в самый конец и большими буквами написал, что ниже ничего нельзя вставлять :D
Brezhnev Ivan
@vanchelo
May 13 2014 20:36
цифры, главная на джанге 5-10мс, на ларике 30мс
Alexander Egorov
@Amegatron
May 13 2014 20:37
я еще не задавался вопросом оптимизации ларика, но навскидку есть две вещи: закомменитить лишние сервис провайдеры, и вручную прописать роуты, вместо Route::controller, если есть такие
Brezhnev Ivan
@vanchelo
May 13 2014 20:37
всё так и сделал)
Alexander Egorov
@Amegatron
May 13 2014 20:38
у меня кстати 2 коллеги с работы перешли на питон с PHP
Brezhnev Ivan
@vanchelo
May 13 2014 20:38
а что повлияло?
Alexander Egorov
@Amegatron
May 13 2014 20:39
не знаю, не спрашивал. ну они давно знали параллельно и питон, и пхп
Brezhnev Ivan
@vanchelo
May 13 2014 20:40
даже с 5-ю записями из базы джанго шустрее
на 5 мс падает почему-то генерация
прожерливый видимо ORM у джанго
Alexey
@Butochnikov
May 13 2014 20:41
в среднем у любого фрейма пыхи, походу 0.35. судя по графикам
Brezhnev Ivan
@vanchelo
May 13 2014 20:41
я понимаю что всё это семечки) купил сервак по мощнее и не паришься)
может что измениться с ближайшее время, читал что сенсиолаб получили много много лямов зеленых на внутреннюю оптимизацию кода
Roman
@TeroBlaZe
May 13 2014 20:43
о каких цифоркаих и скорости генерации страницы вы говорите? Я меряю так в хроме: жму F12->Network и смотрю время отклика первого запроса, на продакшене хоть там железо даже слабее чем у меня комп, на апач+пхп время от 50до100мс когда как, а вот на локальной что бы я не делал, уже и апач на nginx сменил, стало быстрее, но не быстрее 130мс..
хотя на продакшене apc в роли кеша стоит.. хз
Brezhnev Ivan
@vanchelo
May 13 2014 20:43
siege к примеру запускаю и смотрю
или банально время отклика от сервера минус пинг, но siege я запускаю на том сервере где сайт стоит, чтобы от канала не зависило
Roman
@TeroBlaZe
May 13 2014 20:45
я однажды поведясь на скорость работы, чуть на phalcon не пересел, но меня его синтаксис поставил в тупик после ларавела)
Brezhnev Ivan
@vanchelo
May 13 2014 20:45
ага)) и у него не совсем дружелюбная ORM)
Roman
@TeroBlaZe
May 13 2014 20:45
у меня пинг до сервера 1мс)
Brezhnev Ivan
@vanchelo
May 13 2014 20:45
значит у тебя время отклика почти == генерации страницы
Roman
@TeroBlaZe
May 13 2014 20:46
кстати у меня форум на phpbbex стоит, так вот он заметно быстрее работает даже
Brezhnev Ivan
@vanchelo
May 13 2014 20:46
быстрее ларика?
Alexey
@Butochnikov
May 13 2014 20:48
17мс в браузере дефолтная страница ларика с сервера в моей сети
Brezhnev Ivan
@vanchelo
May 13 2014 20:48
а вот поставил Slim, начал его наворачивать, и отклик почти дотянулся до лариковского)) но удобство в слиме хромает реально) когда смотришь его кишки и кишки ларика грустно становится)
Roman
@TeroBlaZe
May 13 2014 20:49
не, ошибся, как-то странно то за 40мс ларик открывает страницу, то за 100, форум в зависимости от того какую страницу открывать, разделы ~50-60, тему чуть дольше ~80 но всё равно +-
Brezhnev Ivan
@vanchelo
May 13 2014 20:49
@Butochnikov у тебя значит хороший сервак
Alexey
@Butochnikov
May 13 2014 20:50
а ROR с того же сервера 5мс
Brezhnev Ivan
@vanchelo
May 13 2014 20:50
))) а еще говорят рельсы тормознутые)
Roman
@TeroBlaZe
May 13 2014 20:50
хах
Alexey
@Butochnikov
May 13 2014 20:50
джанга была но не помню адреса ))
Brezhnev Ivan
@vanchelo
May 13 2014 20:51
а я ROR и не смотрел никогда, интересный?
Alexey
@Butochnikov
May 13 2014 20:53
так с него почти ларик и писан ) есть даже курс http://courses.tutsplus.com/courses/rails-or-laravel-building-an-app-twice
хотя с ror многие идеи тянут
Brezhnev Ivan
@vanchelo
May 13 2014 20:55
я подозреваю что в рельсах будет в разы меньше кода чем в ларике, да?
Roman
@TeroBlaZe
May 13 2014 20:55
эм.. сейчас просто Route::get на / сделал с пустым замыканием на локальной машине = 53мс..
Alexey
@Butochnikov
May 13 2014 20:55
ты даже по времени курса можешь судить....
Alexander Egorov
@Amegatron
May 13 2014 20:56
пустая страница и роут с пустым замыканием почти одно и тоже по времени генерации
тут идет просто инициализация фреймворка
Brezhnev Ivan
@vanchelo
May 13 2014 20:57
ага, вот инициализация ядра много времени отнимает
а есть статьи как ларика с hhvm подружить?
Alexey
@Butochnikov
May 13 2014 20:58
я для кого стараюсь? http://vk.com/wall-53758340?q=hhvm
Brezhnev Ivan
@vanchelo
May 13 2014 20:59
спс)
Roman
@TeroBlaZe
May 13 2014 21:01
а оно того стоит чтоб от php отказаться?
hhvm в смысле использовать
Brezhnev Ivan
@vanchelo
May 13 2014 21:01
так это PHP
HHVM is an open-source virtual machine designed for executing programs written in Hack and PHP
так что отказываться не нужно))
Roman
@TeroBlaZe
May 13 2014 21:03
он быстрее fpm?
Brezhnev Ivan
@vanchelo
May 13 2014 21:03
да это вообще разные вещи)
Roman
@TeroBlaZe
May 13 2014 21:04
так fpm тоже хак для php же
Brezhnev Ivan
@vanchelo
May 13 2014 21:04
http://ru.wikipedia.org/wiki/PHP-FPM это имеешь ввиду?
Roman
@TeroBlaZe
May 13 2014 21:05
да
Roman
@TeroBlaZe
May 13 2014 21:09
я ее сразу открыл еще из той ссылки :D
Brezhnev Ivan
@vanchelo
May 13 2014 21:09
HHVM это по сути собственная версия PHP, поэтому нам не нужно устанавливать PHP отдельно
понимаешь разницу?
самая годная статья http://fideloper.com/hhvm-nginx-laravel
Brezhnev Ivan
@vanchelo
May 13 2014 21:10
интересно а MODX с HHVM подружить можно
Roman
@TeroBlaZe
May 13 2014 21:12
блин написал сообщение а оно не ушло
@vanchelo Я то понял, просто я имел ввиду есть ли смысл вместо php-fpm Использовать hhvm
Brezhnev Ivan
@vanchelo
May 13 2014 21:14
не вместо php-fpm а вместо php
Roman
@TeroBlaZe
May 13 2014 21:16
Рукалицо пойду напьюсь, все мои мечты разрушены
Alexey
@Butochnikov
May 13 2014 21:16
)))
какие?
Roman
@TeroBlaZe
May 13 2014 21:17
я долго не мог понять кто есть кто и с чем кого едят эти Php, php-cgi, php-fcgi, php-fpm ужс..
php-cli!
Alexey
@Butochnikov
May 13 2014 21:18
мечта была понять?
а надо ли все это понимать?
Roman
@TeroBlaZe
May 13 2014 21:18
надо!
Brezhnev Ivan
@vanchelo
May 13 2014 21:20
Alexey
@Butochnikov
May 13 2014 21:20
ну только если ты свой php-tbz пишешь )))
Roman
@TeroBlaZe
May 13 2014 21:23
@vanchelo не нужно тут людей в заблуждение вводить
Brezhnev Ivan
@vanchelo
May 13 2014 21:23
@TeroBlaZe о каком заблуждении речь?
Roman
@TeroBlaZe
May 13 2014 21:24
про >не вместо php-fpm а вместо php
Brezhnev Ivan
@vanchelo
May 13 2014 21:24
это не заблуждение
Roman
@TeroBlaZe
May 13 2014 21:24
phpfpm и есть php
Brezhnev Ivan
@vanchelo
May 13 2014 21:25
это шутка?
Alexander Egorov
@Amegatron
May 13 2014 21:25
пошел я спать, становящемуся форумному бойцу нужны силы :D
Brezhnev Ivan
@vanchelo
May 13 2014 21:25
PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI implementation with some additional features useful for sites of any size, especially busier sites.
Alexander Egorov
@Amegatron
May 13 2014 21:25
всем пока
Alexey
@Butochnikov
May 13 2014 21:25
доброй ночи
Brezhnev Ivan
@vanchelo
May 13 2014 21:25
спокойной!
Roman
@TeroBlaZe
May 13 2014 21:26
@Amegatron Пока
Brezhnev Ivan
@vanchelo
May 13 2014 21:26
php без php-fpm отлично работает, и он ему совсем не нужен
Roman
@TeroBlaZe
May 13 2014 21:27
@vanchelo ну я и читаю: php-fpm это альтернатива fcgi, реализованая с некоторыми улучшениями, т.е php=>phpcgi=>phpfcgi=>phpfpm = hhvm
Brezhnev Ivan
@vanchelo
May 13 2014 21:28
HHVM это виртуальная машина которая работает как без самого PHP так и без php-fpm
Roman
@TeroBlaZe
May 13 2014 21:28
И не ломай шаблоны
Brezhnev Ivan
@vanchelo
May 13 2014 21:28
блин, это вообще разные вещи)))
Roman
@TeroBlaZe
May 13 2014 21:28
это альтернатива!
Brezhnev Ivan
@vanchelo
May 13 2014 21:28
альтернатива чему?
Roman
@TeroBlaZe
May 13 2014 21:29
php! ты их же вместе не поставишь
либо одно либо другое
Brezhnev Ivan
@vanchelo
May 13 2014 21:29
нет
Roman
@TeroBlaZe
May 13 2014 21:29
чтд
Brezhnev Ivan
@vanchelo
May 13 2014 21:29
ты мне всю дорогу писал про php-fpm, а щас за php написал)) это какая-то тонкая игра с твоей стороны?
php + php-fpm и hhvm не конфликтуют
у тебя может какой-то сайт hhvm юзать а какой-то php + php-fpm
Roman
@TeroBlaZe
May 13 2014 21:32
омг)) я тебе говорю что одновременно они тебе не будут интерпретировать код!
Brezhnev Ivan
@vanchelo
May 13 2014 21:32
омг)) а я и не писал нигде php + hhvm
Roman
@TeroBlaZe
May 13 2014 21:32
я писал!
Brezhnev Ivan
@vanchelo
May 13 2014 21:33
так ты себе тогда говори)))
Roman
@TeroBlaZe
May 13 2014 21:33
но ты ответил.
Brezhnev Ivan
@vanchelo
May 13 2014 21:33
что?
TeroBlaZe • 4 минуты ago
php! ты их же вместе не поставишь
TeroBlaZe • 4 минуты ago
либо одно либо другое
TeroBlaZe • минута ago
омг)) я тебе говорю что одновременно они тебе не будут интерпретировать код!
ставить и интерпретировать мне кажется это разные по смыслу слова?
Roman
@TeroBlaZe
May 13 2014 21:35
под "ставить" и имелось ввиду ставить на один сайт для работы вместе...
короче испорченный телефон мля)
Brezhnev Ivan
@vanchelo
May 13 2014 21:36
как бы я догадался?
Roman
@TeroBlaZe
May 13 2014 21:37
My bad, Comrade, my bad!
Brezhnev Ivan
@vanchelo
May 13 2014 21:37
может ты hhvm для вычислений разных используешь через консоль
пишу А, думаю о Б, подразумеваю В ))
чат тока загадили мы с тобой)))
наверное даже я в большей степени
Roman
@TeroBlaZe
May 13 2014 21:38
блин, точно))
Roman
@TeroBlaZe
May 13 2014 22:22
караул, хром прекрати :D Imgur
Brezhnev Ivan
@vanchelo
May 13 2014 22:22
о_О
Roman
@TeroBlaZe
May 13 2014 22:23
Virtual memory Private сейчас 5.3гб :D
у меня хром развил плохую привычку - открывать новую вкладку для нового запроса+он сам открывает страницы в новых вкладках
кстати а какой версии php эквивалентен hhvm По синтаксису и т.п. не накроется ли всё медным тазом банально из за каких-нибудь [] массивов или еще какой новой фигни
Corvus
@BlahBlag
May 13 2014 22:30
а как компосер использовать? мне нужно переменную в вид расшарить
а возможно ли сделать расшарку только при обращении к определенному урл?
Brezhnev Ivan
@vanchelo
May 13 2014 22:31
@TeroBlaZe хз, я еще не экспериментировал)
Roman
@TeroBlaZe
May 13 2014 22:31
@BlahBlag не ты ли пару дней назад то же самое спрашивал?
Corvus
@BlahBlag
May 13 2014 22:31

view::composer я конечно читал доки, но

View::composer('profile', function($view)
{
    $view->with('count', User::count());
});

что за $view такой? Что вместо него?

Roman
@TeroBlaZe
May 13 2014 22:32
да, композеры именно то
Corvus
@BlahBlag
May 13 2014 22:32
я понял, но как использовать не понял. Ты умеешь читать?
Brezhnev Ivan
@vanchelo
May 13 2014 22:32
вместо него ничего, это переменная которая передается в анонимную функцию автоматически
Roman
@TeroBlaZe
May 13 2014 22:33
это то же самое что Return View::make('profile')->with('count', User::count());
Brezhnev Ivan
@vanchelo
May 13 2014 22:33
а чем View::share('count', User::count()) не угодил?
Roman
@TeroBlaZe
May 13 2014 22:34
@vanchelo это же глобально для всего передается, зачем так?
Corvus
@BlahBlag
May 13 2014 22:34
просто я думал, что компосер может расшарить переменную только при обращении к урл, видимо он не может этого сделать
Brezhnev Ivan
@vanchelo
May 13 2014 22:34
смотря где ты пропишешь
Roman
@TeroBlaZe
May 13 2014 22:35

хз, я еще не экспериментировал)

Я тут вот vagrant настраиваю чтоб его потестить, жаль, как я понял там Xdebug Нету, все равно прийдется fpm юзать для разработки

Brezhnev Ivan
@vanchelo
May 13 2014 22:36
@BlahBlag он не по урлу работает а по названию шаблона
Roman
@TeroBlaZe
May 13 2014 22:36
@BlahBlag а разве урл != какая-то вью?
Brezhnev Ivan
@vanchelo
May 13 2014 22:36
если делать по URL то тебе и View::share сойдет
Roman
@TeroBlaZe
May 13 2014 22:36
если бы он работал по урл, то ничем бы от return View::make() Не отличался
и на другой странице бы писало что переменная не найдена
Corvus
@BlahBlag
May 13 2014 22:40
скажите а ->first() вернет последнюю запись из таблицы базы данных?
или самую первую
Brezhnev Ivan
@vanchelo
May 13 2014 22:42
первую!
можно вот так извратится
if (str_contains(URL::current(), '/profile'))
{
    View::share('count', User::count());
}
тогда во всех вьюхах URL'ов где будет встречаться фраза /profile будет доступна переменная $count
т.е. имеем url -> http://site.com/user/profile с переменной $count
Corvus
@BlahBlag
May 13 2014 22:46

@vanchelo хватила передача в вид, а через компосер возможно передать несколько переменных в один вид?

View::composer('home.section.sale', function($view)
{
    $view->with('sale', Collections::where('sale', '>', '0') -> first(), 'new', Collection::where('id', '=', '1') -> first());
});

такой вариант не катит

Brezhnev Ivan
@vanchelo
May 13 2014 22:47
)))
Corvus
@BlahBlag
May 13 2014 22:48
    $view->with(array(
                'sale' => Collections::where('sale', '>', '0') -> first(), 'new' => Collection::where('id', '=', '1') -> first()
                ));
и такой тоже
Brezhnev Ivan
@vanchelo
May 13 2014 22:48
$view->with('sale', Collections::where('sale', '>', '0')->first())
          ->with('new', Collection::where('id', '=', '1')->first());
Corvus
@BlahBlag
May 13 2014 22:50
@vanchelo не прокатило я все проверил и даже попробовал так
$sale = Collections::where('sale', '>', '0') -> first();
    $new  = Collection::where('id', '=', '1') -> first();
    $view->with('sale', $sale) -> with('new', $new);
Brezhnev Ivan
@vanchelo
May 13 2014 22:51
что пишет?
Corvus
@BlahBlag
May 13 2014 22:51
и так не катит
$view->with('sale', $sale); $view -> with('new', $new);
Brezhnev Ivan
@vanchelo
May 13 2014 22:51
а че у тебя сначала Collections
а потом Collection
так задумано?
Corvus
@BlahBlag
May 13 2014 22:51
opa
все
collections
Brezhnev Ivan
@vanchelo
May 13 2014 22:52
ну ты хоть следи что пишешь прежде чем спрашивать ))
а то банальные опечатки
Roman
@TeroBlaZe
May 13 2014 22:54

и так не катит

и не должно

у меня какая-то проблема с чатом, я после рефреша страницы наблюдаю новые сообщения, которых небыло до рефреша
причем ни последние не подгружаются, а кусками в середине
Twent
@twent
May 13 2014 22:58
Люди, как реализовать открываемый/закрываемый col-md? При закрытии соседний должен расширяться на размер открываемого/закрываемого, а при открытии сужаться.
Brezhnev Ivan
@vanchelo
May 13 2014 22:59
я бы тебе помог, но с бутстрапом не работаю к сожалению
Mikhail Donskoy
@mdnsk
May 13 2014 22:59
@TeroBlaZe Может быть у тебя стоит расширение блокирующее JavaScript?
Alexey
@Butochnikov
May 13 2014 23:00

Я тут вот vagrant настраиваю чтоб его потестить, жаль, как я понял там Xdebug Нету, все равно прийдется fpm юзать для разработки

а как vagrant связан с xdebug?

Brezhnev Ivan
@vanchelo
May 13 2014 23:00
@Butochnikov так же как и php-fpm c HHVM ))))))
Mikhail Donskoy
@mdnsk
May 13 2014 23:01
"его потестить" имеется в виду HHVM
Roman
@TeroBlaZe
May 13 2014 23:01
@Butochnikov еще бы, выдрал сообщение из контекста :D я про hhvm говорил))
Brezhnev Ivan
@vanchelo
May 13 2014 23:02
как ты написал так тебя и поняли)
Alexey
@Butochnikov
May 13 2014 23:02
да я прочитал и не понял
потому и спросил
Brezhnev Ivan
@vanchelo
May 13 2014 23:03
@TeroBlaZe есть образы с установленным HHVM и xDebug, на случай если руками ставить не хочешь
Roman
@TeroBlaZe
May 13 2014 23:04
@BaldaI ток блокировщик рекламы adguard и то которому здесь нечего блокировать, еще ghostery но думаю оно, как и всё остальное никак не связано с js
Brezhnev Ivan
@vanchelo
May 13 2014 23:04
@BlahBlag а ты до Laravel с PHP Был знаком???
Alexey
@Butochnikov
May 13 2014 23:05
@TeroBlaZe да и вообще юзай это https://github.com/fideloper/Vaprobash годная вешь
Roman
@TeroBlaZe
May 13 2014 23:05
@Butochnikov я на него положил глаз еще дня 3 назад, когда про него говорили ;-)
Alexey
@Butochnikov
May 13 2014 23:06
там и hhvm и xdebug есть
Roman
@TeroBlaZe
May 13 2014 23:06
а вместе? :D
Alexey
@Butochnikov
May 13 2014 23:07
как сделашь
Roman
@TeroBlaZe
May 13 2014 23:07
ну это же расширение для php а не hhvm, или можно подключить оказывается?
Alexey
@Butochnikov
May 13 2014 23:08
я конечно не тестил, но надо погуглить
Twent
@twent
May 13 2014 23:08
@vanchelo, а вообще скрипт такой есть на примете? Не обязательно для Bootstrap
Brezhnev Ivan
@vanchelo
May 13 2014 23:08
так это через media query вроде бы делается
Twent
@twent
May 13 2014 23:08
@vanchelo, а вообще скрипт такой есть на примете? Не обязательно для Bootstrap
Brezhnev Ivan
@vanchelo
May 13 2014 23:10
а, у тебя именно речь за скрытие блока?
я бы просто на jquery написал, при скрытии блока менял бы у соседнего класс
Twent
@twent
May 13 2014 23:11
по кнопке можно открыть и по ней же закрыть, где-то это видел недавно
Brezhnev Ivan
@vanchelo
May 13 2014 23:11
к примеру col-1 col-2 col-1 скрыл col-1 и у меня col-2 поменял класс на col-3
а плагин не встречал, во вконтакте сделано похоже на то как тебе надо, при скролинге центральный блок расширяется на всю ширину
Twent
@twent
May 13 2014 23:17
вспомнил где я видел это, кто-то здесь недавно ссылку оставлял demo.fusioninvoice.com/dashboard
Alexey
@Butochnikov
May 13 2014 23:21
и где там этот эффект?
Roman
@TeroBlaZe
May 13 2014 23:21
кстати про вконтакт, не знает никто, есть ли там такое API - получить текст и заголовки последних сообщений в группе?
Alexey
@Butochnikov
May 13 2014 23:22
по API можно все ))
Roman
@TeroBlaZe
May 13 2014 23:23
это хорошо.. а то подгружать всякие скрипты и картинки с вешних сайтов, особенно когда они лежат, ой как раздражает
Twent
@twent
May 13 2014 23:33
@Butochnikov при нажатии на <a href="#" class="navbar-btn sidebar-toggle" data-toggle="offcanvas" role="button"></a> Нужно зайти. Рядом с лого кнопка.
Alexey
@Butochnikov
May 13 2014 23:34
это где левое меню пропадает?
Twent
@twent
May 13 2014 23:35
да
Brezhnev Ivan
@vanchelo
May 13 2014 23:36
сделай как я тебе написал
там делов на 4 строчки JS кода
там так и сделано, у правой колонки и левой добавляются классы

до right-side после right-side stretch
до left-side sidebar-offcanvas после left-side sidebar-offcanvas collapse-left

т.е. все элементарно

Twent
@twent
May 13 2014 23:40
@vanchelo спасибо, буду пробовать
Brezhnev Ivan
@vanchelo
May 13 2014 23:44
@Butochnikov поставил рельсы под виндой 7, работает шустро
Roman
@TeroBlaZe
May 13 2014 23:49
Как же синтаксис кошмарный просто у руби для привыкшего к скобочкам глазу
Brezhnev Ivan
@vanchelo
May 13 2014 23:49
ага)
Maxim
@Big-Shark
May 13 2014 23:52
@TeroBlaZe @vanchelo зато когда привыкнешь, сложно писать на чем то другом)
Brezhnev Ivan
@vanchelo
May 13 2014 23:53
@Big-Shark я пока хочу глянуть что из себя руби и руби на рельсах представляют, вдруг мне больше чем пхп и пхп и ларавел понравится))
Maxim
@Big-Shark
May 13 2014 23:55
@vanchelo мне больше нравится руби) Но с работой все хуже(
Brezhnev Ivan
@vanchelo
May 13 2014 23:55
для души пописывать ведь можно)
как хобби)
Maxim
@Big-Shark
May 13 2014 23:56
@vanchelo было бы время)
Brezhnev Ivan
@vanchelo
May 13 2014 23:56
да ладно)))
ты ж не президент всея руси)
Maxim
@Big-Shark
May 13 2014 23:58
@vanchelo пн-ср-пт у меня американский футбол с 7 до 9, в 10 я дома, в вт-чт-сб у меня кроссфит с 19 до 23, в 00 я дома, так что остаются только выходные, но там обычно шашлык, машлык и тд
Brezhnev Ivan
@vanchelo
May 13 2014 23:58
значит тебе хватает хобби)
футбол это ж явно не работа)