 Laravel по-русски
Laravel по-русски
      
      
    Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Добрый день.
Ищу разовый проект или поддержку на небольшую загрузку.
Опыт работы 10+ но позиционирую себя как Middle(Хотя могу похвастаться проектами далеко не Middle).
Основное направление Backend, но без проблем могу поправить и форонт в разумных пределах.
Стек: Linux/Laravel 5.*/Mysql/RabbitMQ/JavaScript/Git/Vue/Asterisk. 
Отчетность Trello либо Jira.
Никаких скриншотеров, либо подобной гадости - моей отдачи вам хватит и так с запасом.
Недавно завершились два проекта, где я участвовал, соответственно ищу замену. 
Интересует разовый проект, либо проект с небольшой нагрузкой на длительное сотрудничество, в идеале связанный с VOIP либо, что-то на подобии. 
"Забацай сайтик" по быстрому  и лендинги - не по адресу, извините  версткой владею плохо. 
Ищу, что-то интересное, срочной необходимости нет, соответственно откровенно бредовые проекты прошу не предлагать - не хочу тратить ваше и свое время.
Если кому интересно пишите на почту syesta@bk.ru.
Буду рад сотрудничеству.
ps: относительно английского (всплыло как-то сразу) Уровень pre-intermediate, соответственно я не смогу участвовать в митингах и вести переписку(корректно и без ошибок), понимаю что хотелось бы - но уж как есть...
Добрый день.
Ищу разовый проект или поддержку на небольшую загрузку.
Опыт работы 10+ но позиционирую себя как Middle(Хотя могу похвастаться проектами далеко не Middle).
Основное направление Backend, но без проблем могу поправить и форонт в разумных пределах. 
Стек: Linux/Laravel 5.*/Mysql/RabbitMQ/JavaScript/Git/Vue/Asterisk. 
Отчетность Trello либо Jira.
Никаких скриншетеров, либо подобной гадости - моей отдачи вам хватит и так с запасом.
Недавно завершились два проекта, где я участвовал, соответственно ищу замену. 
Интересует разовый проект, либо проект с небольшой нагрузкой на длительное сотрудничество, в идеале связанный с VOIP либо, что-то на подобии. 
"Забацай сайтик" по быстрому  и лендинги - не по адресу, извините  версткой владею плохо. 
Ищу, что-то интересное, срочной необходимости нет, соответственно откровенно бредовые проекты прошу не предлагать - не хочу тратить ваше и свое время.
Если кому интересно пишите на почту syesta@bk.ru.
Буду рад сотрудничеству.
ps: относительно английского (всплыло как-то сразу) Уровень pre-intermediate, соответственно я не смогу участвовать в митингах и вести переписку(корректно и без ошибок), понимаю что хотелось бы - но уж как есть...
Для того чтобы удалить задание из очереди (согластно документации), нужно добавить в команду трейт Illuminate\Queue\InteractsWithQueue, который предоставляет методы delete и release.
Потом в методе handle самого Job можно удалить задачу. Тут все хорошо и верно работает.
Вопрос как удалить задачу из клаcса который $handler = new \App\Lib\NewClass(); ?
<?php
namespace App\Jobs;
use App\Jobs\Job;
use Illuminate\Contracts\Bus\SelfHandling;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Queue;
class MyJob extends Job implements SelfHandling, ShouldQueue
{
    use InteractsWithQueue, Queueable, SerializesModels;
    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct()
    {
    }
    /**
     * Execute the command.
     *
     * @return void
     */
    public function handle()
    {
        $handler = new \App\Lib\Cashback\NewClass();
        return;
    }
    public function failed()
    {
        Log::info("failed:", (array) $this->toArray());
    }
}
class NewClass 
{
    protected $handlers = [];
    public function setDelete()
    {
        $this->delete();
    }
}Те я хочу в класе NewContainer сделать $This->delete(), как мне это сделать, при условии что NewContainer я не хочу наследовать от Job клаcса.
Добавить 
    use InteractsWithQueue, Queueable, SerializesModels;
в NewClass не получится, так как в нем нету обекта класа Job, вариант наследовать мне не подходить. Возможно както можно получить объект класа Job??
Имею стандартную ситуацию scope в моделе:
public static function scopeGetUserStores($query, $user_id = false)
    {
        if (!$user_id) {
            $user_id = \Auth::id();
        }
            $user = $query->with('store_lists')->find($user_id);
            $stores = $user->store_lists->pluck('id')->toArray();
            return (is_array($stores)) ? $stores : [];
        
        });
    }По логике вещей в контролере, если у пользователя нет складов должен быть пустой масив, но так не получается в контролер возврашается 
Exception. 
Приходится делать дополнительную проверку в контролере, что то на подобии:
 $list_stores= (is_array($stores)) ? $stores : [];Хотя ты уже эту проверку сделал в model... И как то поменять это поведения я не могу. Так как проблема на форуме не поднималась я смею догадываться что чего то не знаю просто, а решается она достаточно легко - может подскажет кто ?
Ps: логичный вариант словить Exception тоже не проходит....
            try {
                 $stores = $user->store_lists->pluck('id')->toArray();
             } catch (\Exception $e) {
                 return [];
             }Собственно есть такой классный progressbar
, который может показывать выполнение команды в консоли. 
В консоли все работает отлично:
$progress = new ProgressBar($this->output, 50);
		// start and displays the progress bar
		$progress->start();
		$i = 0;
		while ($i++ < 50) {
			sleep(1);
			$progress->advance();
		}на выходе 0/2 [>---------------------------] 0% и бегущая "птитчка".
Но так как команд много, иногда возникает желание запускать даные команды из GUI не заходя в консоль. Делается это очено просто (согласно документации )
// Блок artisan
Route::get('artisan/{id}', function($id)
{
    return \Artisan::call($id, []);
});И вот хотелось бы чтобы и прогрес баз показывался в консоли. немного погуглив я нашел ссылочку http://lukaswhite.com/blog/post/2014/ru … board-gui/
 радостный начал тестить - на выходе ничего, поковыряв исходный класс а потом и найдя ссылку https://laracasts.com/discuss/channels/ … -laravel-5
я понял что процес затягивается:
Может кому пригодится в L5 это решается так:
use Symfony\Component\Console\Output\StreamOutput;
$this->output = new StreamOutput(fopen('php://output', 'w'));
$bar = new ProgressBar($this->output, 10);Либо
use Symfony\Component\Console\Output\BufferedOutput;
$output = new BufferedOutput;
$bar = new ProgressBar($output, 10);Но проблема в том, что вывод в GUI появляется уже в конце когда скрипт отработал, а хотелось бы чтобы это было в виде прогресбара... 
Догадываюсь что все не все так просто и это нужно делать как-то иначе...  
Прошу просветить, как решить проблему... Или хотя бы пример реализации чего то похожего...
Забили упомянуть на чем написан сайт...
Походу самому отвечать...
<?php
require dirname(dirname(__DIR__)) . '/vendor/autoload.php';
require dirname(__DIR__) . '/config.php';
use Illuminate\Database\Capsule\Manager as DB;
use Illuminate\Cache\CacheManager as CacheManager;
$dbc = new DB;
$dbc->addConnection(array(
    'driver'    => 'mysql',
    'host'      => DB_HOST,
    'database'  => DB_NAME,
    'username'  => DB_USER,
    'password'  => DB_PASSWORD,
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
));
# Set the default fetch mode for all queries
$dbc->setFetchMode(PDO::FETCH_CLASS);
# Set up the cache
$container = $dbc->getContainer();
$container['config']['cache.driver'] = 'memcached';
$container['config']['cache.memcached'] = array('host' => '127.0.0.1', 'port' => 11211, 'weight' => 100);
$container->offsetGet('config')->offsetSet('cache.driver', 'array');
$cacheManager = new CacheManager($container);
$dbc->setCacheManager($cacheManager);
$dbc->setAsGlobal();
$dbc->bootEloquent();
global $dbc;Добрый день.
Пытаюсь использовать Illuminate\Database в NOn Laravel.
Делаю вот так:
<?php
namespace App;
use Illuminate\Database\Capsule\Manager as Capsule;
use Illuminate\Cache\CacheManager;
use Illuminate\Container\Container; // Only needed for DB
use Illuminate\Events\Dispatcher;
use Illuminate\Filesystem\Filesystem;
        $capsule = new Capsule;
	$container = $capsule->getContainer();
	$cache_dir = '/tmp';
	$container['config']['cache.driver'] = 'file';
	$container['config']['cache.path'] = $cache_dir;
	$container['files'] = new Filesystem();
	$capsule->addConnection([
        'driver'    => 'mysql',
            'host'      => '127.0.0.1',
            'database'  => 'rr20',
            'username'  => 'root',
            'password'  => '',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'strict'    => false,
    ]);
	$capsule->setEventDispatcher(new Dispatcher(new Container));
	$capsule->setCacheManager(new CacheManager($container));
	$capsule->setAsGlobal();
	$capsule->bootEloquent();Все красиво, все работает. 
Только пытаюсь перекинуть все на memcache 
 $capsule = new Capsule;
	$container = $capsule->getContainer();
	$container['config']['cache.driver'] = 'memcached';
	$container['config']['cache.servers'] = [['host' => '127.0.0.1', 'port' =>  11211, 'weight' => 100, ]];
	// $cache_dir = '/tmp';
	// $container['config']['cache.driver'] = 'file';
	// $container['config']['cache.path'] = $cache_dir;
	// $container['files'] = new Filesystem();
	$capsule->addConnection([
        'driver'    => 'mysql',
            'host'      => '127.0.0.1',
            'database'  => 'rr20',
            'username'  => 'root',
            'password'  => '',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'strict'    => false,
    ]);
	$capsule->setEventDispatcher(new Dispatcher(new Container));
	$capsule->setCacheManager(new CacheManager($container));
	$capsule->setAsGlobal();
	$capsule->bootEloquent();Выбрасывает исключение 
PHP Fatal error:  Uncaught exception 'ReflectionException' with message 'Class memcached.connector does not exist' in /srv/sites/public/vendor/illuminate/container/Illuminate/Container/Container.php:501
Stack trace:
Прошу помочь...
Добрый день.
Хочу поднять тему, форматирования кода в IDE отличных от шторма. На сколько я понимаю синтаксис blade файлов и соответственно подсветку кода, сейчас корректно отрабатывает только 3 IDE да и то не полностью.
Comodo 
Sublime 
PhpStorm
Форматировать же код умеет только последний, да и то делает он это не фонтан... 
Собственно вопрос, если не пользоваться PhpStorm можно как-то решить проблему с форматирование кода в других IDE? 
Грубо говоря нужна строка параметров для /php_beautifier либо /tidy для форматирования кода Blade файлов. Если кто нашел - поделитесь ссылкой. 
Заранее благодарю. 
Ps. как костыльное решение для тех кто ну вообще не может ничего найти для решения - могу предложить http://www.dirtymarkup.com/. 
Через копировать вставить работает....
Сам спросил - сам отвечу.
Попытка запустить php с ключом -d, приводит к таким глюкам. Уж не знаю с чем связано. Плохо конечно - приходится полагаться на сам фраймворк, оставляя вероятность "завешать" сервер.
/usr/bin/php -d max_execution_time=300  /path/to/artisan schedule:run 1Добрый день!
Согласно документации http://laravel.com/docs/5.1/scheduling#introduction запуск по крону
* * * * * php /path/to/artisan schedule:run 1>> /dev/null 2>&1
запустил, пару раз скрипт сработал - потом переклинило [RuntimeException]     Too many arguments.   в консоли. 
Те скрипт не видит Get аргумента '1'. 
Подскажите что за глюк ? Как исправить ?
Верная ошибка Class 'App\Http\Controllers\AddMissed' not found
Попробуй вот это http://komodoide.com/ если не используеш контроль версий (либо используеш внешнюю программу) то покупать IDE не нужно, достаточно Komodo Edit .
Большинство нужного функционала работает с коробки. Нет форматирования кода но решается легко http://www.activestate.com/blog/2009/03 … komodo-ide.
Попробовал случайно - был приятно удивлен (не сочтите за рекламу).
IDE что то  среднее между ну уж сильно навороченым штормом (60 % функционала которого не используется ) , и недостаточно функциональным и периодически падающим Sublime,  так сказать золотая середина. 
+ Как бонус куча приятных тем с коробки и еще пару фишек важных только мне ...
Добрый день. 
Сделал все по мануалу https://laravel.ru/docs/v5/bus:
Мой контроллер расширяет Controller отдельно добавлять вроде ничего не нужно...
<?php
namespace App\Http\Controllers;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Grud\SimpleGridHelper;
use Symfony\Component\Process\Process;
use Symfony\Component\Process\ProcessBuilder;
use App\Models\Television_callback;
use DB, Config, Sentry;
class TelMissedController extends Controller {
 public   function AddMissed($queue_) {
        $this->dispatch(new AddMissed($queue_ , 60*5));
    }
}Команду создал через
artisan php artisan make:command AddMissed
use App\Commands\Command;
use Illuminate\Contracts\Bus\SelfHandling;
class AddMissed extends Command implements SelfHandling {
    protected $queue, $time_corect;
    /**
     * Create a new command instance.
     * @return void
     */
            
    public  function __construct(Queue $queue, Time_corect $time_corect) {
        $this->queue = $queue;
        $this->time_corect = $time_corect;
    }
    /**
     * Execute the command.
     * @return void
     */
    public  function handle() {
        
        dd("Test");
        
    }
}При запуске ошибка 
ReflectionException in RouteDependencyResolverTrait.php line 53: Class App\Http\Controllers\Dispatcher does not exist
Где я напортачил ? Подскажи те пож. кто в курсе.
Не катит:
06:25:00-vagrant@homestead:/srv/sites/$ 
06:25:01-vagrant@homestead:/srv/sites/$ php artisan make:model Models\Television_expects
Model created successfully.
Created Migration: 2015_06_08_092552_create_models_television_expects_table
06:25:55-vagrant@homestead:/srv/sites/$ 
<?php namespace App;
use Illuminate\Database\Eloquent\Model;
class ModelsTelevision_expects extends Model {
	//
}ну чего так все сложно то? 
А просто переключать как то в коде можно? Вот везде клас но иногда не часто нужно вернуть в масиве ? Можно както переключить только в одной функции? 
Не глобально ?
не работает
 $query = \DB::connection($tb['db'])->table($tb['table']);
        $query->select('RECORD_ID','call_time','AGENT_ID','PHONE_NUMBER','fio','city','adress','old','male','COMMENTS');
        
так :
        $qq = $query->orderBy('call_time', 'DESC')->get();
        $tables = $qq->toArray();
и так :
$tables = $query->orderBy('call_time', 'DESC')->toArray();
 
B так        
$tables = $query->orderBy('call_time', 'DESC')->get()->toArray();
Call to a member function toArray() on arrayМож в пятерке выпилили?
Доброе утро.
Вопрос: возможно ли вернуть запрос к БД в виде масива, а не класа в laravel 5 ? 
 Поиск дает много вариантов, но все какие то "костыльные", хотелось бы иметь рабочей вариант - иногда надо. 
 То что я нашел: 
$return = $query->orderBy($sidx, $sord)->get();
        $return = json_decode(json_encode($return) , true);$data=array_map(function($item){
              return (array) $item;
          },DB::table('table_name')->select(.......)->get());А смысл? Быстрых фрейворков и без Lumen.. Хотелось бы раскрученную штуку чтобы в заказчиков не возникало вопросов: "кто поддерживать  будет, если пропадешь?" 
Да и под "старичка" наработок то  оставалось...  
Ситуация ясна...  А то я подумал, было, что накосячил,  оказывается не я  .
 .
Гляньте схожую тему на форуме: https://laravel.ru/forum/viewtopic.php?id=862
дык я и не отрицаю, что включены проверки верификации и тд. 
Хотелось бы услышать мысли от сообщества из серии как ускорить если нужно. Куда смотреть.
Добрый день сообщество.
Хочу поднять тему которая, думаю, будет многим интересна. Собственно о скорости работы.
У меня есть несколько проектов сделанных по традиции на codeigniter, собственно от последнего там используется наверное каркас и возможно частично active record, остальное давно вышло  за рамки "старичка". 
В качестве самообразования решил сделать рефакторинг одного из простеньких проектов на Laravel. На что сразу налетел  на скорость ответа - причем она настолько выше что в некоторых местах становится просто не комфортно работать. 
В качестве сравнения беру обыкновенный запрос Update в базу Mysql  там простенькая табличка на  5 полей. Никаких ключей и ТП. 
Забрал с Request, сделал  update в табличке. 
$idkey = $this->idkey;
        $table = $this->table;
        $join = $this->join;
       
        $oper = \Request::input('oper');
        $id = \Request::input('id');
        
        switch ($oper) {
            case 'add':
        
            case 'edit':
                $data = array();
                $data['name_list'] = \Request::input('name_list');
                $data['atems_max'] = \Request::input('atems_max');
                $data['table_name'] = \Request::input('table_name');
                $data['description_list'] = \Request::input('description_list');
                $data['list_state'] = \Request::input('list_state');
                
                \DB::table($table)->where($idkey, $id)->update($data); Примеры ответов: 
laravel http://joxi.ru/DrlNgM8fOaGQ2P
codeigniter http://joxi.ru/vAW4zeJfQbBLrW 
290 против 1,2 сек -в 5 раз. Как-то много. 
В качестве dev среды использую Homestead.  Логирование выключил в  dev,   на production  переключил в .dev.  Кеш, сесии - memcached. Может что еще? 
Уверен что то, явно делаю не так - прошу помощь сообщества.
Вот это посмотрите 
https://github.com/bestmomo/laravel5-example
А зачем тебе get и post запросы для loaddata и странные урлы "lists.edit" лучше "lists/edit" но это н суть
Там посмотри отправляются ли ключ по запросу (сеть)
Jack? благодарю  - носом ткнули в ошибку. 
Тему можно закрывать проблема была на стороне  jqgrid.