• Как исправить размытое, мутное, нечёткое изображение на мониторе?

    tilion
    @tilion Автор вопроса
    Веб-дизайнер
    8 часов потратил на поиск проблемы. Решалось всё этим чёртовым ползунком.
    Ответ написан
    Комментировать
  • Где найти удаленную стажировку для новичка PHP?

    Плавно - это насколько долго? Год, два, пять?
    Находишь на любом сайте поиска работы удаленку по совместительству (или неполный рабочий день, везде по-разному называется). Пишешь, просишь тестовое задание. Могут пообщаться на предмет знаний - не робей. Отвечай на все предложения, которые найдешь

    Что я вынес из практического опыта
    - не нужно бояться сказать "не знаю" или ляпнуть не то. Адекватные работодатели нормально относятся к слабой подготовке кандидатов
    - делай ВСЕ тестовые задания, даже если отказали. Тебе нужна практика? Вот она
    - отказ - это нормально? отказывать будут много. Это нормально. И хорошо мотивирует. Тебе зададут правильные вопросы, ты поймешь куда двигаться
    - взяли на работу - делай больше. Тут вообще без вариантов. Изучай сопутствующие вопросы. Спрашивай более опытных (см.п.1). Не получается - проси помощи. Накосячил - сразу признавайся. Нормальные старички обматерят, но попытаются наставить на путь истинный
    - скорее всего, хотя бы раз кинут на деньги) Просто смирись

    Не в обиду другим комментаторам, но:
    - самому сесть и придумать (а потом - заставить делать) какое-либо задание крайне трудно
    - переучиться в 28 лет - вообще не проблема. Мир IT по-своему интересен: где-то прикольно, где-то убого. Как и везде
    - читай больше кода. Порядок таков: код -> книжки -> видосы. В ходе обучения у тебя ДОЛЖНЫ возникать вопросы и ты ДОЛЖЕН их решать (как и в работе). Если не понятно из книг - посмотри видео, но не наоборот, ибо в голове нихера не отложится
    - надоело - брось. Не заставляй себя кипеть над фреймворками, если они тебе не заходят. Всему свое время. Ковыряй WordPress-ы, Joomla и прочие CMS
    Ответ написан
    Комментировать
  • Где найти удаленную стажировку для новичка PHP?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    Можете посмотреть проекты на GitHub и принять в них участие.
    Ответ написан
    Комментировать
  • Как создать библиотеку на go и использовать через php?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    Можно собрать go код как расширение php
    https://github.com/kitech/php-go
    Ответ написан
    3 комментария
  • Счетчик увеличивается на 2, почему?

    @BorisKorobkov Куратор тега PHP
    Web developer
    Возможно, браузер запрашивает favicon, которого нет, а веб-сервер вместо 404 вызывает index.php, который лишний раз увеличивает счетчик на 1.
    Ответ написан
  • Как ограничить запись файлов в папках ( например через .htaccess)?

    @BorisKorobkov Куратор тега PHP
    Web developer
    нужно чтобы CMS не обновлялась больше

    Плохая идея.

    Нужно запретить запись файлов в папках

    useradd, chown, chmod.

    чтобы защита устаревшего CMS не была заражена вирусом

    При наличии дыр запрет от записи файлов не помешает взломать сайт. Например, через модификацию БД, файлов в images, tmp, кражу пароля админа и пр.
    Ответ написан
    5 комментариев
  • Best Practice при работе с репозиториями в Laravel?

    @D3lphi
    Да, по реализации все верно вы себе представляете.

    Как все это смотрится с AR?

    Откровенно скажу, с AR это смотрится хреново. В том смысле, что вы не используете основные "преимущества" (Да, да, в кавычках, потому что эти самые преимущества облегчают и ускоряют разработку, но никак не способствуют улучшению качества кода и его поддержке) этого паттерна.

    В каждом из таких репозиторий будут повторяющиеся методы: all, find и прочие. Как быть в таком случае? Как вынести подобные методы в общий класс?

    Создать базовый интерфейс для всех репозиториев и в нем описать эти методы, затем расширить интерфейс каждого конкретного репозитория. Можете плюсом ко всему написать абстрактный класс репозиторий и в нем написать универсальную реализацию этих самых общих методов (Для каждого типа репозиториев, разумеется). Но лично я бы так делать не стал.

    Правильно ли я размышляю вообще?

    Да, по реализации все верно вы себе представляете.
    Ответ написан
    6 комментариев
  • Как использовать PSR-7?

    Stalker_RED
    @Stalker_RED
    Открываю PSR-7, ctrl+f, ввожу "session" - ноль результатов.

    Вы точно хотите вручную задавать куки при старте сессии, не понимая как оно все работает?

    Кроме того, я вот в гугле написал "slim session" и нашел вот это. Не устраивает?
    Ответ написан
    2 комментария
  • Frontend или Backend?

    EagleMoor
    @EagleMoor
    PHP Yii2 RESTful API Developer
    Всегда не понимал этого разделения на Frontend & Backend. Такое ощущение что php программистам лень изучать js, а хорошие верстальщики научились кодить на js, но им не хочется изучать php (nodejs, java, python, ...)

    Почему пару лет назад при устройстве в хорошую веб студию ты должен был уметь все!
    А теперь как не взглянешь на нового соискателя, так он ни только php толком не знает, но и про html слышал краем уха, не говоря уже об sql.

    А по вопросу — оставайтесь в frontend'е. Вашу работу проще показать начальнику, проще похвалиться и попросить повышения зп.

    К примеру я ушел на Backend и RESTfull API. В итоге начальник не понимает даже что я делаю. Да, что-то важное. Но мне нечего ему "показать" что бы сказать "вот какой я молодец, дай мне премию или надбавку к зп". Зато JS все счастливые и довольные.
    Ответ написан
    10 комментариев
  • Насколько у меня правильный код ООП php?

    @D3lphi
    Здесь плохо всё, к сожалению.

    Начнем с того, что вы неверно наследуете классы. Почему у вас класс, отвечающий за подключение к базе данных является родителем класса, работающим с заказами? Наследование применяется, если можно сказать, что что-то является чем-то. Например, разработчик является работником; компьютер является устройством и тд. Здесь же у вас вообще близко такой логике не получится следовать. Вы должны передавать хотя бы объект для работы с бд через инъекцию, например, в конструктор. В идеале, нужно использовать паттерн репозиторий для работы с базой данных.

    Класс SearchOrder у вас не только выполняет запросы, но еще и работает с данными, хранит состояние этих самых данных, фильтрует данные (strip_tags()). Непорядок. Это все нужно разделять. У вас вообще получаются какие-то богообъекты, которые умеют во все.

    Вы каждый раз повторяете строки с подготовкой запроса, биндингом параметров, отправкой запроса и тд. Не думали, что неплохо бы было написать какую-нибудь обертку и выполнять запросы как-нибудь так:
    $result = $wrapper->select("SELECT * FROM `tablename` WHERE `id` = :id", ['id' => 5]);

    ?

    Вы вызываете connect() в методах. То есть, каждый вызов этого метода будет приводить к установке нового соединения с базой данных, даже если оно уже было установлено. Соединение с базой данных это достаточно дорогостоящая операция.

    Зачем вы используете свойства, если можно обойтись обычными локальными переменными:
    $this->orderID = (int) strip_tags($orderID);
    $this->column = (string) strip_tags($column);
    $this->value = (string) strip_tags($value);

    ?

    Почему вы стриппите тэги у идентификатора? вы настолько не уверены в том, что влетает в функцию:
    strip_tags($orderID);
    ?

    Если вы не используете php 7 и, как следствие, скалярный тайпхинтинг, то должны делать проверки на тип входящего аргумента. Если что-то не так с типом, бросаем исключение (А не приводим его к нужному)! Например:
    if (!is_string($arg)) {
        throw new InvalidArgumentTypeException('string', $arg);
    }

    Это в идеале. Вы не обязаны это делать, конечно же. Но вот такие проверки делают приложение безопаснее. Хотя, опять же, повторюсь, в 2017 нужно начинать новые проекты на php 7.1+.

    Ошибки не нужно выводить в этом классе. Вы должны поймать исключение базы данных, преобразовать ее в исключение предметной области и пробросить его дальше и где-то там, на уровне выше вывести информацию пользователю об ошибке. В mvc системе, например, это делается в контроллере.

    Кроме всего прочего, почитайте про стандарты оформления кода. Вы им не следуете.

    Вам пока рано писать такие велосипеды. Судя по всему, у вас нет опыта вообще. Посмотрите готовые решения: фреймворки, ORM, изучите их, хотя бы поверхностно разберитесь, как оно работает и уже потом пробуйте что-то сделать, исходя из полученных знаний.

    Желаю успехов!
    Ответ написан
    1 комментарий
  • Почему при экспорте базы данных, нет кодировки utf8_general_ci и как ее включить?

    SagePtr
    @SagePtr
    Еда - это святое
    Потому что utf8_general_ci - это не кодировка, это сравнение (collation). Кодировка в данном случае - utf-8, сверху в вашем выпадающем списке присутствует.
    Ответ написан
    4 комментария
  • Почему оператор LIKE выбирает только одно слово из целого предложения?

    BuriK666
    @BuriK666
    Компьютерный псих
    Вам скорее всего нужен Full-Text search

    Либо разбивайте по словам и делайте
    WHERE title LIKE :word_1 AND title LIKE :word_2 и т.п.
    Ответ написан
    Комментировать
  • Требование к градации Middle PHP Developer?

    Maksclub
    @Maksclub Куратор тега PHP
    maksfedorov.ru
    Мидл -- это полноценный разработчик, решающий любую задачу:
    - укладывается в бюджет (время)
    - полноценно рулит своей разработкой (архитектура, хороший код)

    Джун -- тоже уже разработчик (а не стажер как некоторые любят подсунуть), так или иначе решающий любую задачу, но задорого по времени и усилиям (из-за недостатка опыта и знаний), как правило берут их, чтобы они втянулись в проект и будучи втянутыми -- становились полноценными разработчиками именно этого проекта. Достаточно ценный юнит -- на него сбрасывают всю шелуху по работе, он втягивается в проект долго и под присмотром как правило и потом хорошо его знает, пишет много кода и недорого стоит... в некоторых проектах может закрывать полный спектр задач.

    Сеньор -- это уже монстр, который рулит вектором выбора технологий (как правило в больших командных проектах, тк в маленьких я тоже выбираю технологии :) или монстр, который может допилить приложение для языка, не просто фигачить как псих на Symfony, а еще и допиливать сам Symfony и плюс свои пару крутых опенсорсных решения.
    Также сеньор может быть мидлом, например в крупных игровых студиях сеньоры сидят и пилят крутую физику для игр...

    Вообще понятия сильно размазаны... разделения только по зп и требованиям в объявлении есть, учитесь и работайте! (и мы будем :)
    Ответ написан
    Комментировать
  • С чего начать изучение php7 новичку?

    vmpartner
    @vmpartner
    In code we trust
    Сам начинал с видео курсов и считаю это самым лучшим вариантом обучения. Информация запоминается быстрее.
    Ответ написан
    Комментировать
  • Что посоветуете еще подучить что бы тянуть на Junior PHP разработчика?

    @Fortop
    Tech/Team lead
    Для джуна уже более чем неплохой стек (при условии, что действительно знаете, а не думаете, что знаете)

    Так что есть смысл расти выше к мидлу.

    • Подтянуть использование ООП (те самые абстрактные классы и интерфейсы).
    • Обязательно Composer, посмотреть некоторые пакеты которые есть на packagist
    • Разобраться в key-value БД, очередях.
    • Познакомиться с патернами.
    • Добрать еще 1-2 фреймворка из разряда Zend/Symfony (но не Yii, Codeigniter, Kohana) и Slim/Zend Expressive
    • Разобраться с REST
    • API
    Ответ написан
    7 комментариев
  • Что почитать и на чем потренироваться, не могу перейти от процедурного к ооп?

    KM-Brothers
    @KM-Brothers
    Я знаю, что ничего не знаю...
    Мне, в свое время, помогло изучение шаблонов (паттернов) проектирования. Понравилось как преподнес эту тему Мэтт Зандстра в книге "PHP: объекты, шаблоны и методики программирования", начиная с 7-й главы.
    Ответ написан
    Комментировать