Laravel по-русски

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

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

#1 Поиск работы » Ищу разовый проект или поддержку на небольшую загрузку. » 13.11.2018 11:10:06

s_vadim
Ответов: 0

Добрый день.

Ищу разовый проект или поддержку на небольшую загрузку.

Опыт работы 10+ но позиционирую себя как Middle(Хотя могу похвастаться проектами далеко не Middle).
Основное направление Backend, но без проблем могу поправить и форонт в разумных пределах.

Стек: Linux/Laravel 5.*/Mysql/RabbitMQ/JavaScript/Git/Vue/Asterisk.
Отчетность Trello либо Jira.

Никаких скриншотеров, либо подобной гадости - моей отдачи вам хватит и так с запасом.   

Недавно завершились два проекта, где я участвовал, соответственно ищу замену.
Интересует разовый проект, либо проект с небольшой нагрузкой на длительное сотрудничество, в идеале связанный с VOIP либо, что-то на подобии.
"Забацай сайтик" по быстрому  и лендинги - не по адресу, извините  версткой владею плохо.
Ищу, что-то интересное, срочной необходимости нет, соответственно откровенно бредовые проекты прошу не предлагать - не хочу тратить ваше и свое время.

Если кому интересно пишите на почту syesta@bk.ru.
Буду рад сотрудничеству.

ps: относительно английского (всплыло как-то сразу)  Уровень pre-intermediate, соответственно я не смогу участвовать в митингах и вести переписку(корректно и без ошибок), понимаю что хотелось бы - но уж как есть...

#2 Поиск работы » Ищу разовый проект или поддержку на небольшую загрузку » 16.02.2018 13:40:12

s_vadim
Ответов: 1

Добрый день.

Ищу разовый проект или поддержку на небольшую загрузку.

Опыт работы 10+ но позиционирую себя как Middle(Хотя могу похвастаться проектами далеко не Middle).
Основное направление Backend, но без проблем могу поправить и форонт в разумных пределах.

Стек: Linux/Laravel 5.*/Mysql/RabbitMQ/JavaScript/Git/Vue/Asterisk.
Отчетность Trello либо Jira.

Никаких скриншетеров, либо подобной гадости - моей отдачи вам хватит и так с запасом.   

Недавно завершились два проекта, где я участвовал, соответственно ищу замену.
Интересует разовый проект, либо проект с небольшой нагрузкой на длительное сотрудничество, в идеале связанный с VOIP либо, что-то на подобии.
"Забацай сайтик" по быстрому  и лендинги - не по адресу, извините  версткой владею плохо.
Ищу, что-то интересное, срочной необходимости нет, соответственно откровенно бредовые проекты прошу не предлагать - не хочу тратить ваше и свое время.

Если кому интересно пишите на почту syesta@bk.ru.
Буду рад сотрудничеству.

ps: относительно английского (всплыло как-то сразу)  Уровень pre-intermediate, соответственно я не смогу участвовать в митингах и вести переписку(корректно и без ошибок), понимаю что хотелось бы - но уж как есть...

#3 Laravel 5 » Как удалить задание из очереди. ?? » 21.07.2016 17:52:49

s_vadim
Ответов: 0

Для того чтобы удалить задание из очереди (согластно документации), нужно добавить в команду трейт 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??

#4 Laravel 5 » Как правельно сдела return с модели чтобы не возвращался Exception. » 19.04.2016 09:15:10

s_vadim
Ответов: 0

Имею стандартную ситуацию 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 [];
             }

#7 Laravel 5 » Как показать вывод команды artisan в Blade? » 12.11.2015 16:59:18

s_vadim
Ответов: 0

Собственно есть такой классный 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 появляется уже в конце когда скрипт отработал, а хотелось бы чтобы это было в виде прогресбара...
Догадываюсь что все не все так просто и это нужно делать как-то иначе... 
Прошу просветить, как решить проблему... Или хотя бы пример реализации чего то похожего...

#9 Re: Общий раздел » Ошибка 'Class memcached.connector does not exist' » 15.09.2015 10:29:34

Походу самому отвечать...

<?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;

#10 Общий раздел » Ошибка 'Class memcached.connector does not exist' » 09.09.2015 18:07:50

s_vadim
Ответов: 1

Добрый день.

Пытаюсь использовать 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:

Прошу помочь...

#11 Laravel 5 » Laravel Blade IDE (php_beautifier, tidy) » 03.08.2015 17:30:16

s_vadim
Ответов: 0

Добрый день.

Хочу поднять тему, форматирования кода в IDE отличных от шторма. На сколько я понимаю синтаксис blade файлов и соответственно подсветку кода,  сейчас корректно отрабатывает  только 3 IDE  да и то не полностью.

Comodo
Sublime
PhpStorm

Форматировать же код умеет только последний, да и то делает он это не фонтан...
Собственно вопрос, если не пользоваться PhpStorm можно как-то решить проблему с форматирование кода в других IDE?

Грубо говоря нужна строка параметров для /php_beautifier либо /tidy для форматирования кода Blade файлов. Если кто нашел - поделитесь ссылкой.
Заранее благодарю.

Ps. как костыльное решение для тех кто ну вообще не может ничего найти для решения - могу предложить http://www.dirtymarkup.com/.
Через копировать вставить работает....

#12 Re: Laravel 5 » Too many arguments CRON » 08.07.2015 10:14:12

Сам спросил - сам отвечу.

Попытка запустить php с ключом -d, приводит к таким глюкам. Уж не знаю с чем связано.  Плохо конечно - приходится полагаться на сам фраймворк, оставляя вероятность "завешать" сервер. 

/usr/bin/php -d max_execution_time=300  /path/to/artisan schedule:run 1

#13 Laravel 5 » Too many arguments CRON » 07.07.2015 18:01:24

s_vadim
Ответов: 10

Добрый день!

Согласно документации 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'.

Подскажите что за глюк ?  Как исправить ?

#14 Re: Laravel 5 » Command Bus error "Dispatcher does not exist" » 19.06.2015 16:12:34

Верная ошибка Class 'App\Http\Controllers\AddMissed' not found

#15 Re: Laravel 5 » IDE Laravel » 19.06.2015 16:00:54

Попробуй вот это http://komodoide.com/  если не используеш контроль версий (либо используеш внешнюю программу) то покупать IDE не нужно,  достаточно  Komodo Edit .

Большинство нужного функционала работает с коробки. Нет форматирования кода но решается легко http://www.activestate.com/blog/2009/03 … komodo-ide.

Попробовал случайно - был приятно удивлен (не сочтите за рекламу).
IDE что то  среднее между ну уж сильно навороченым штормом (60 % функционала которого не используется ) , и недостаточно функциональным и периодически падающим Sublime,  так сказать золотая середина.

+ Как бонус куча приятных тем с коробки и еще пару фишек важных только мне ...

#16 Laravel 5 » Command Bus error "Dispatcher does not exist" » 19.06.2015 15:27:09

s_vadim
Ответов: 1

Добрый день.
Сделал все по мануалу 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


Где я напортачил ?  Подскажи те пож. кто в курсе.

#17 Re: Laravel 5 » Создание файла модели в папке Models » 08.06.2015 09:29:31

Не катит:
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 {

	//

}

#18 Re: Laravel 5 » Вернуть Get() c БД как масив. » 16.05.2015 15:07:20

ну чего так все сложно то?
А просто переключать как то в коде можно? Вот везде клас но иногда не часто нужно вернуть в масиве ? Можно както переключить только в одной функции?
Не глобально ?

#19 Re: Laravel 5 » Вернуть Get() c БД как масив. » 15.05.2015 11:43:03

не работает

 $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

Мож в пятерке выпилили?

#20 Laravel 5 » Вернуть Get() c БД как масив. » 14.05.2015 13:15:44

s_vadim
Ответов: 6

Доброе утро.

Вопрос: возможно ли вернуть запрос к БД в виде масива, а не класа в 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());

#21 Re: Laravel 5 » Laravel - скорость работы » 06.05.2015 09:56:09

А смысл? Быстрых фрейворков и без Lumen.. Хотелось бы раскрученную штуку чтобы в заказчиков не возникало вопросов: "кто поддерживать  будет, если пропадешь?"
Да и под "старичка" наработок то  оставалось... 
Ситуация ясна...  А то я подумал, было, что накосячил,  оказывается не я smile .

#22 Re: Laravel 5 » Laravel - скорость работы » 05.05.2015 12:56:50

Proger_XP пишет:

Гляньте схожую тему на форуме: https://laravel.ru/forum/viewtopic.php?id=862

дык я и не отрицаю, что включены проверки верификации и тд.
Хотелось бы услышать мысли от сообщества из серии как ускорить если нужно. Куда смотреть.

#23 Laravel 5 » Laravel - скорость работы » 05.05.2015 10:42:53

s_vadim
Ответов: 8

Добрый день сообщество.

Хочу поднять тему которая, думаю, будет многим интересна. Собственно о скорости работы.

У меня есть несколько проектов сделанных по традиции на 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. Может что еще?
Уверен что то, явно делаю не так - прошу помощь сообщества.

#25 Re: Laravel 5 » csrf_token AND jqgrid » 30.04.2015 10:55:47

Jack_White пишет:

А зачем тебе get и post запросы для loaddata и странные урлы "lists.edit" лучше "lists/edit" но это н суть
Там посмотри отправляются ли ключ по запросу (сеть)

Jack? благодарю  - носом ткнули в ошибку.
Тему можно закрывать проблема была на стороне  jqgrid.

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