• Как повысить скорость разработки?

    Lyrium
    @Lyrium
    Web developer
    Вставлю свои 5 копеек к огромному списку ответов на Ваш, очень волнующий большинство людей, вопрос.

    У меня был момент когда сильно стала проседать продуктивность работы, слабо помогали различные методики, пробовал помидорро, гулял каждые 2-2,5 часа по лесу, благо он прям напротив дома. Но постоянно замечал что все время откладываю задачи, не хочу заниматься в эту секунду работой, вот после видео на YouTube или поста на Pikabu продолжу и так до вечера все откладывал.
    Перешел на ночной режим, т.к. появилась мысль что днем мозг просто слишком хорошо работает и задача кажется ему легкой и неинтересной, а к вечеру подустает и задача уже в самый раз. Но как выяснилось опытным путем это не совсем так, начал и ночью откладывать на потом, после примерно 40 минут работы.

    Решением моей проблемы стало то что я ушел из мира программирования на 5 недель, заработал на отдых и не спеша искал новую работу. В это время занимался абсолютно всем, но не написанием кода и проектированием в голове разных абстракций с ним связанного. Читал книги, изучал синтаксис различных, языков программирования, Учил немецкий, и многое другое. Серьезно за это время я очень сильно соскучился по работе, вернувшись в строй в июле этого года желание кодить не проходит до сих пор.

    Быть может Вам просто нужен перерыв
    Ответ написан
    2 комментария
  • Переменная $_SESSION в PHP?

    Lyrium
    @Lyrium
    Web developer
    можете посмотреть примеры написанные на Хабре много лет назад: например, наглядно как, что и куда. Либо посмотреть как устроена авторизация в современных фреймворках.

    А также почитать о сессиях и куках здесь
    Ответ написан
    1 комментарий
  • Как с таблицы вывести данные для пользователя который находится в другой таблице?

    Lyrium
    @Lyrium
    Web developer
    Насколько я понял из комментария Вам необходимо немного расширить вашу таблицу с публикациями, а именно добавить в нее автора user_id, чтобы получилось:

    Таблица записей:table
    idmes
    image
    message
    data
    user_id


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

    А затем Вы уже можете оперировать данными как будет удобно, например сравнивать user_id из сессии с user_id из таблицы, схематично:

    $session_user_id = // получаем id пользователя из сессии любым удобным способом
    $user_id = // присваиваем значение user_id из публикации
    
    if($session_user_id === $user_id) {
        // отображаем публикацию
    } else {
        // нет прав на просмотр
    }
    Ответ написан
    1 комментарий
  • Как учить ооп самому? С чего лучше начать?

    Lyrium
    @Lyrium
    Web developer
    $array = [
                [
                    'name' => 'Николай Васильевич',
                    'email' => 'gogol@gogol.ru',
                    'birth_date' => '1809',
                    //... необходимые поля для автора
                    'books' => [
                        [
                            'name' => 'Мертвые души',
                            'date' => '1841',
                        ],
                        [
                            'name' => 'Вий',
                            'date' => '1834',
                        ],
                        //... перечисление всех книг автора
                    ],
                ],
                [
                    'name' => 'Пушкин',
                    'email' => 'alexandr@sergeevich.ru',
                    'birth_date' => '1799',
                    'books' => [
                        [
                            'name' => 'Евгений Онегин',
                            'date' => '1823',
                        ],
                        //...
                    ],
                ],
                //... и т.д.
            ];
    
            // информация об авторе
            foreach ($array as $author) {
                echo $author['name'].' - '.$author['email'].' - '.$author['birth_date'].'<br>';
            }
    
            echo '<hr>';
    
            // о книгах
            foreach ($array as $author) {
                foreach ($author['books'] as $book) {
                    echo $book['name'].' - '.$author['name'].' - '.$book['date'].'<br>';
                }
            }


    В результате 5bc5f0964d646264763501.png
    Ответ написан
    Комментировать
  • Как установить Imagick на OpenServer?

    Lyrium
    @Lyrium
    Web developer
    1. Скачать windows.php.net/downloads/pecl/releases/imagick/3....
    2. скопировать php_imagick.dll в OpenServer\modules\php\PHP-7-x64\ext\php_imagick.dll
    3. добавить extension=php_imagick.dll в конфиг пхп
    4. обновить OpenServer\modules\imagemagick до последней версии с www.imagemagick.org/script/binary-releases.php

    отсюда
    Ответ написан
  • Как в коллекциях Laravel задавать значение ключей?

    Lyrium
    @Lyrium Автор вопроса
    Web developer
    Решением вопроса стал метод mapWithKeys()

    dd(FuwMapping::where('template','=','NB5215')->get()->mapWithKeys(function($item) use ($content) {
                return [$item->pdf_field => array_get($content, $item->json_field)];
            }));


    method-mapwithkeys

    результат:
    Collection {#412
      #items: array:7 [
        "Firm" => "Broker Dealer"
        "ProducerName" => "F. M.  Dostoevsky"
        "SSN" => "999-99-9999"
        "PhoneNumber" => "(999) 999-9999"
        "Email" => "test@test.com"
        "InsuredName" => null
        "InsuredBirth" => "01/01/1980"
      ]
    }
    Ответ написан
    Комментировать
  • Как работать с blade в laravel?

    Lyrium
    @Lyrium
    Web developer
    Blade шаблонизатор который помогает разграничить html и сделать работу с ним и вывод php данных более удобным и гибким.

    Разобраться что к чему не сложно blade прост для освоения, сейчас приведу несколько примеров с чего лучше начать:

    во первых разобраться с layout и с устройством шаблонизатора можно на примере кода который генерируется командой "php artisan make:auth" (базовая авторизация Laravel прочесть можно в офф. документации ссылка на авторизацию)
    Здесь сразу у вас будет пример с несколькими вьюхами и правильно построенным шаблоном в целом

    также можно ознакомиться с русскоязычной документацией описывающей blade довольно подробно ссылка на русский blade

    Самое главное нужно понимать что Blade основан на концепции наследования шаблонов и секциях, а разобраться с тем как что работает помогут примеры готового кода и документация

    upd: Директива @section, как следует из её названия, определяет секцию содержимого, а директива @ yield используется для отображения содержимого заданной секции. Т.е. в то место где стоит yield попадает значение секции

    схематичный пример:

    есть файл app, в дирректории layouts
    layouts/app.blade.php
    <html>
    <head>
    	<title>
    		@yield('title', 'Laravel')
    	</title>
    
    	<!-- Styles -->
    	<link href="{{ asset('public/css/app.css') }}" rel="stylesheet">
    </head>
    <body>
    	<div id="app">
    		<div class="navbar">
    			...
    		</div>
    
    		<div class="container">
    			@yield('content')
    		</div>
    	</div>
    </body>
    </html>


    второй файл описывает то что попадет в указанную секцию
    products.blade.php
    @extends('layouts.app')
    
    @section('title', 'Products')
    
    @section('content')
    	@foreach($products as $product)
    		{{ $product }}
    	@endforeach
    @endsection

    В первом случае нет закрывающего @endsection из-за того что тело секции это и есть строка 'Products', во втором случае мы указываем конец секции, потому что тело секции находится между @section и @endsection
    Ответ написан
    7 комментариев
  • Как работает данная конструкция ::class()?

    Lyrium
    @Lyrium
    Web developer
    в классе Validator есть статичный метод with. Он принимает строку с path '\\' -это экранирование слеша, на выходе имеем строку с единичным \;
    исходя из названия и того что пишет автор по этому пути хранятся правила валидации
    Ответ написан
    5 комментариев
  • Какое тестовое задание junior php дают на собеседовании?

    Lyrium
    @Lyrium
    Web developer
    Тестовое в разных конторах разное. Для джуна это обычно: Таск-менеджер или примитивный блог, с необходимыми заказчику технологиями и, чаще с ограниченным временем. Могут попросить сделать что-либо на чистом PHP, например ваше представление модели MVC.

    В общем задача включающая в себя решение базовых принципов львиной доли сайтов на рынке: регистрация, авторизация. Работа с формой (публикация новостей, создание таски/задачи). Работа с БД, в частности с JOIN, тут либо комментарии к постам, либо теги у задачи.

    Нужно понимать если тестовое сначала глянет HR-менеджер, значит оно должно еще быть симпатичное ибо если HR забракует то, даже идеальный код не попадет к программистам и вас вряд ли возьмут на работу.
    Ответ написан
    2 комментария
  • Как посмотреть, какие значения встречаются в таблице?

    Lyrium
    @Lyrium
    Web developer
    Используя оператор SQL DISTINCT вывести, какие исполнители (Singer) имеются в таблице:

    SELECT DISTINCT Singer
    FROM Artists

    почитать тут
    Ответ написан
    Комментировать
  • Я могу подготовить нужные мне участки шаблона в методе модели Kohana?

    Lyrium
    @Lyrium
    Web developer
    По моему скромному мнению идея не хороша.
    Суть в том что html должен быть в view. Хороший код - понятный код, но в вашем варианте будет не так. Например: мне нужно поправить у вас footer, лезу в view, а футера там нет.

    Модель MVC проста и известна, Kohana на ней почитать можно здесь,
    Если вкратце: Controllers = основная логика приложения, Models = обращение к бд, создание методов и классов для того чтобы разгрузить контроллеры, view = отображение весь html и данные для отображения.

    Также, я считаю, что различные helpers которые часто встраивают в фреймворки портят читабельность для широкого круга разработчиков. Чистый html знают все кто знаком web, что еще нужно?

    Для того чтобы разгрузить ваши view, как-то их структурировать и избежать повторения больших кусков кода (аля шаблон), используйте шаблонизаторы, например twig
    Ответ написан
    3 комментария
  • Не могу понять передачу параметров в метод?

    Lyrium
    @Lyrium
    Web developer
    Классы, в которых объявлен метод-конструктор, будут вызывать этот метод при каждом создании нового объекта

    Т.е. при создании объекта данного класса, он принимает экземпляр указанного в параметрах __construct() класса, а обращение к этому экземпляру возможно по названию соседней переменной

    ProductManageService => $service
    или ProductRepository => $products
    Ответ написан