• Почему composer устанавливает лишние пакеты?

    megakor
    @megakor
    Go/PHP developer | Вконтакте
    composer.json содержит зависимости вашего проекта от данных библиотек.
    Но эти самые библиотеки могут содержать в себе другие зависимости, которые будут отражены в composer.lock (в composer.json, при этом, отражено не будет).
    Т.е. то что скачиваются у вас пакеты, которых нет в composer.json - это нормально и от этого никак не уйти, потому что это необходимость.
    Ответ написан
    Комментировать
  • Анонс статьи готовые решения?

    Eridani
    @Eridani
    Мимо проходил
    Завести два поля, анонс и фул текст
    Ответ написан
    4 комментария
  • Хостинг следит за действиями в ЛК. Нормально ли это?

    Sanes
    @Sanes
    Не обязательно это должно способствовать продажам. Для проектировщика интерфейса например полезно.
    Ответ написан
    Комментировать
  • CMS не видит MySQL в Docker контейнере?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Похоже у вас фактическое подключение происходит не через localhost, а на ip контейнера.
    Ответ написан
    2 комментария
  • Как "починить" терминал Ubuntu 20.04?

    Adamos
    @Adamos
    Загляни в файл ~/.bashrc - не навалено ли там в конце какого-нибудь мусора с этой строчкой.
    Ответ написан
    Комментировать
  • Как вы решаете ситуацию, если неправильно оценили стоимость проекта и поняли это уже по ходу?

    Jump
    @Jump
    Системный администратор со стажем.
    Уведомляете заказчика, обсуждаете и по результатам принимаете решение.
    Возможно заказчик пойдет вам навстречу и пересмотрит стоимость, возможно нет.
    Если стоимость пересмотреть невозможно - либо доделываете по текущей, себе в убыток, либо отказываетесь от заказа(тоже может в убыток как репутационный, так и финансовый вроде выплаты неустойки)

    Во многих случаях когда точную стоимость работ оценить затруднительно предварительно оговариваем с заказчиком возможность такой ситуации.
    Ответ написан
    Комментировать
  • Как создать свое интернет радио нубу на VPS ubunu 16.04?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    Статей нет потому, что никому нафиг не надо писать такие статьи. Тот, кто знает как это делать, берёт и делает, а не пишет в блоги.
    Характеристики нафиг тоже не нужны, потому что это не про них, а про архитектуру
    Ответ написан
    Комментировать
  • Есть ли смысл разработки ASP.net+ react.js?

    Krasnodar_etc
    @Krasnodar_etc
    fundraiseup
    Не очень понимаю подобные вопросы
    Бэкендер делает бэкенд на языке N (в вашем случае, N = ASP.net), делает некие сервисы, которые умеют отвечать на http-запросы. Ему всё равно, что с этим будет делать фронтенд
    Фронтендер делает фронтенд на фреймворке N. Делает запросы к сервисам бэкенда, получает от них ответы. Ему всё равно, на чём написан бэкенд

    Фронту и бэку взаимно всё равно на технологии друг друга. Общаются они всё равно json-ами через запросы
    Ответ написан
    Комментировать
  • В mysql для быстрого поиска по дате лучше использовать timestamp как int или как date (datetime)?

    php666
    @php666
    PHP-макака
    Сделал базу test
    CREATE TABLE `test` (
      `name` varchar(255) NOT NULL,
      `date_int` int(11) UNSIGNED NOT NULL,
      `date_time` datetime NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    ALTER TABLE `test`
      ADD KEY `date_int` (`date_int`),
      ADD KEY `date_time` (`date_time`);
    COMMIT;


    заполнил значениями дат, от 1970-01-01 00:00:01 до 1970-01-05 11:02:29, с разницей 1 секунда, итого вышло 1 603 869 строк (далее php умер и мне лень было настраивать Maximum execution time).

    Разницы вообще нет, если искать точное соответствие вплоть до секунды:
    SELECT * FROM `test` WHERE date_int = UNIX_TIMESTAMP('1970-01-03 12:12:12')

    id 	select_type 	table 	type 	possible_keys 	key 	key_len 	ref 	rows 	Extra 	
    1 	SIMPLE 	test 	ref 	date_int 	date_int 	4 	const 	2 	NULL

    EXPLAIN SELECT * FROM `test` WHERE date_time = '1970-01-03 12:12:12'

    id 	select_type 	table 	type 	possible_keys 	key 	key_len 	ref 	rows 	Extra 	
    1 	SIMPLE 	test 	ref 	date_time 	date_time 	5 	const 	2 	NULL


    Так что фанатик прав, нехрен для даты использовать числа.
    Ответ написан
    Комментировать
  • Почему последнее время в Разработке такие маленькие зарплаты?

    @mletov
    Ключевая фраза во всей вакансии "Верстка сайтов по шаблонам и интеграция с CMS", за такую работу зачастую платят 30-60к, а тут накинули слегка, скорее всего за разговорный английский (хотя непонятно зачем им, в веб-студиях обычно это не требуется). Знания PHP + MySql в этой компании скорее всего нужны самые минимальные. JavaScript - тоже самый минимум, подозреваю, что только Jquery, никаких React/Angular или чистого JS.

    Посмотрите вакансии с более высокими требованиями, там и зп гораздо более интересные.
    Ответ написан
    Комментировать
  • Какие можно реализовать мини-проекты на PHP?

    @posters
    На мой взгляд, беда большинства программистов в том, что они зациклены на it сфере. В ней уже многое реализовано. Гитхаб заполонен никому не нужными велосипедами. Придумать и реализовать что-то уникальное в этой сфере уже довольно сложно. А чтобы улучшать уже имеющееся и востребованное может пока еще не хватать компетентности.

    Попробуйте выйти за рамки IT. Наверняка у вас есть друзья/родственники, работающие в сферах далеких от IT. Разузнайте больше о их деятельности, попробуйте вникнуть в рабочий процесс, мысленно представить себя на их месте. Подумайте, что бы вы могли сделать, чтобы как-то облегчить их труд, какая программа могла бы стать потенциально полезной. Обсудите идею с этим человеком и если он согласился, что программа может облегчить ему жизнь, ПРИСТУПАЙТЕ. Вот вам мотивация и почти настоящий проект.

    Если ну совсем никак, обратите внимание на отрасли науки. Вот, к примеру, об исторической информатике не думали? Научитесь работать с данными. Возьмите, например, информацию Международного мемориала ( https://www.memo.ru/ru-ru/projects/memoid и https://www.memo.ru/ru-ru/projects/hackathon ) и попробуйте на ее основе сделать какой-нибудь информационный сайт, который в перспективе будет интересен не только вам. Поработайте со статистикой, попробуйте выявить какие-нибудь закономерности.

    Все это разумеется совсем нетривиальные задачи. Пошаговые гайдики на ютубчике на них не найти. Но тем и интересней, разве нет? Если вы способный, обучаемый программист, то должны справиться.
    Ответ написан
    2 комментария
  • Как правильно организовать добавление в избранное?

    @Kostik_1993
    Web Developer
    На бекенде это все делается, так как если вы будете писать в куки, локал сторедж и т.д., данные не будут синхронизироватся между вашими устройствами. Как вы это будете делать уже ваше дело. Обычно заводится отдельная таблица под это дело. На фронте вы либо получаете список ваших лайков, но тут аккуратно если данных много, либо же вы при каждом обращении за данными у которых может быть лайк проверяете лайкнуто оно или не лайкнуто текущим юзером
    Ответ написан
    2 комментария
  • Есть ли принципальное отличие между инъекцией Repository в функцию, и получением его же через entityManager(см. код)?

    @sl0
    Если нужно просто получить некоторые данные из репозитория, то первый вариант лучше.
    А вот если надо полученные данные как-то изменять, то лучше второй вариант, т.к. сразу можно дернуть persist и flush из em.
    Ответ написан
    1 комментарий
  • Как обработать строку, как переменную?

    Stalker_RED
    @Stalker_RED
    Отвечая на ваш вопрос - print_r может выводить вложенные структуры, хоть и не все.

    Но вообще print_r не дебажит, а выводит содержимое переменной в "удобочитаемом виде". Есть еще var_export и var_dump, от которых можно получить больше подробностей.

    Дебажить выводом строк - это конечно просто, но дико неэффективно и неудобно. Вы это прочувствуете, когда в проекте будет не 4 строчки, а тысячи их. Посмотрите что умеют дебаггеры в связке с IDE, вам должно понравится.
    Ответ написан
    Комментировать
  • PUT & POST при написании API

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    POST запрос подразумевает создание записи, результатом ее должены быть пустое тело ответа и заголовок location c uri нового объекта.

    PUT — подмена записей. Тобиш обновить одно какое-то поле у записи нельзя. Опять же, если вы заменили объект — то вы уже имеете на руках все нужные данные, посему ответом может быть опять же заголовок location.

    есть еще метод PATCH, который позволяет именно обновлять запись (конкретное поле или несколько из них). Тут тоже подразумевается возврат только URI. По сути какие либо данные вам может вернуть только GET запрос.

    И есть еще куча заморочек со статус кодами, мол 200 это хорошо только для GET, так как оно имеет тело ответа. А для большинства других нужен 204, который говорит что все хорошо, но есть только заголовки.

    НО… это если по феншую и именно RESTFull, причем это далеко не все. Обычно дальше GET/POST/PUT/DELETE никто не идет… PATCH вообще редко используют, а вот LINK вообще ниразу не видел что бы на реальных проектах применяли…
    Ответ написан
    Комментировать
  • Как сделать вклад в развитие PHP?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    Все шаги подробно описаны: https://wiki.php.net/rfc/howto

    Однако, я бы не рекомендовал вам тратить своё и чужое время на это предложение.
    Во-первых:
    If you don't have the skills to fully implement your RFC and no-one volunteers to code it, there is little chance your RFC will be successful.

    А во-вторых, это настолько нишевое и малополезное предложение, что усложнять язык ради него никто не станет.
    Ответ написан
    6 комментариев
  • Как правильно пройтись по этому простому массиву?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    spoiler
    Этот пользователь уже заблокирован


    Вообще-то пользователей хранят в базе. Для бана можно было сделать отдельное поле и простым запросом проверят, забанен ли он.


    $alreadyBlocked = 'name1|||name2|||name3|||';
    $array = explode('|||', $alreadyBlocked);
    
    $utc = $_POST['username'];
    if ( in_array($utc, $array) ) {
      // Пользователь уже заблокирован
    }


    Если нужно перебрать всех, то просто уберите exit:

    foreach ($array as $name){ // разбираю
     if($name === $utc){  // пробую так, но почему-то проверяется только первое имя из массива $array то есть только 
     name1, остальные будто игнорятся
    
     echo json_encode(['error' => 'Этот пользователь уже заблокирован'], JSON_UNESCAPED_UNICODE);
    -exit;
    +//exit;
    }
    ...
    }
    Ответ написан
    3 комментария
  • Как запросить несколько Постов вместе с тэгами в Doctrine/Symfony?

    @TexElless
    Backend-разработчик(преимущественно PHP и Symfony)
    Не у всех :)
    Надо или для отношения добавить режим fetch="EAGER"
    Или, если подгружать теги нужно не всегда, для загрузки поста с тегами сделать отдельный метод в репозитории, в котором будет выполняться JOIN.

    Документация по поводу fetch mode
    Ответ написан
    7 комментариев