• Как реализовать в MVC?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    1) За что обычно отвечают классы предки в MVC?
    За хранение базовых функций, как пример, давай рассмотрим Controller
    Предположим, что ядро фреймворка, вызывает всегда три метода, в такой последовательности:
    beforeAction - запустить что-то до выполнения экшена
    action - запустить сам экшен
    afterAction - запустить что-то после выполнения экшена

    ** экшн = метод класса контроллера

    так вот чтобы, ты мог не объявлять beforeAction и afterAction, они объявляются в каком-нибудь абстрактном классе Controller, от которого и идет дальнейшее наследование и все потомки получают эти методы

    Либо на примере модели, есть какой-нибудь класс ActiveRecord, ты наследуешь свою модель от него и все потомки получают разом всю его функциональность: например конструктор запросов через вызов цепочек:
    Posts::find()->where(['title'=>'hello world'])->orderBy(['id'=>SORT_DESC])->all();
    ну, а твоя модель выглядит так class Posts extends ActiveRecord{}
    т.е. вся логика скрывается в родителе

    2) По разному, тут надо смотреть конкретный фреймворк: бывает что сервис контейнер этим занимается, бывает DI, бывает просто вызывается фабрика, а внутри ей передается соединение которое хранится где-нибудь в "реестре" ядра... в общем по-разному.

    3) Опять же по-разному, но в целом принцип такой. Для каждой сущности есть своя модель, например есть отдельно модель Конкурсы, есть отдельно модель Участники и т.д. Тебе надо показать отдельно кол-во парней и девушек, тогда в контроллере отвечающим за вывод конкурса, ты обращаешься к модели Участников и получаешь необходимую информацию (что-то типа $boys = Paticipant->maleCount(); $girls = Paticipant->femaleCount(); ) и передаешь эти данные во view. А сам подсчет, работа с бд и т.д. идет уже в модели (Paticipant). В итоге получается что вся твоя логика делится на такие шаги:
    - ядро анализирует запрос и вызывает экшн контроллера
    - экшн контроллера, получает необходимые данные из модели и передает во вью
    - модель содержит всякую логику получения и обработки данных
    - контроллер или экшн контроллера рендерит вью и отдает код клиенту

    4) Ну, обычно на сайте фреймворка пишут что туда входит. Всякие плюшки для разработчиков (например хелперы по созданию форм, классы по работе с SSH, консолью и т.д.), тесты, документация и куча всяких, часто никогда не используемых, штук
    Ответ написан
    Комментировать
  • Попытка взлома сайта. Как оформить?

    orlov0562
    @orlov0562
    I'm cool!
    Я не эксперт в данном вопросе, но думаю алгоритм должен быть следующий:
    1) В твоей стране должен быть отдел К, связываешься с ними, и особо не вдаваясь в подробности, узнаешь куда идти, какой алгоритм подачи заявлений. Тебе дадут контакт.
    2) Связываешься с контактом (мб придется сходить туда, куда пошлют) и узнаешь что нужно для подачи заявления
    3) Пишешь заявление и ждешь его рассмотрения, периодически пингуя получателя заявлений
    4) Надежда на какой-то положительный исход, довольно маленькая, по тем причинам которые уже описали. Разумеется если твой проект, не ресурс администрации президента или типа того.

    Ну, а вообще, таких людей, надо не наказывать, а поощрять и использовать в целях улучшения своего проекта. Глядишь тогда и дыр будет меньше.
    Ответ написан
    4 комментария
  • Какую графическую оболочку для git используете вы?

    orlov0562
    @orlov0562
    I'm cool!
    Я, практически всегда, никакую не использую, пользуюсь консолью. Очень редко, использую gitg или sourcetree когда надо разобраться с деревом или когда, кто-то налажал и надо понять что к чему.

    Большинство программ покрывают стандартные требования. С другой стороны очень многие ide и редакторы имеют встроенный терминал или поддержку гита, так что необходимости в сторонних программах практически нет. Запомнить 5-10 основных команд - не составляет проблем.
    Ответ написан
    Комментировать
  • Как добавить в url лишнюю часть с помощью .htaccess?

    orlov0562
    @orlov0562
    I'm cool!
    Вот тебе отправной пример:
    RewriteEngine On
    RewriteRule ^([^/]+)(/.+)$ $2?lg=$1 [QSA,D]
    RewriteRule ^(.+)$ index.php?p=$1 [QSA]


    в index.php
    <?php
    print_r($_REQUEST);


    и запускаешь таким запросом:
    localhost/ru/test/fed?f=f

    получаешь такой ответ:
    Array ( [p] => /test/fed [lg] => ru [f] => f )

    дальше модифицируешь по вкусу
    Ответ написан
    Комментировать
  • Как забрать данные из xml средствами php?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    Мне лень писать код, я тебе расскажу как надо сделать:

    1) simplexml_load_string, возвращает объект класса SimpleXMLElement:
    php.net/manual/en/function.simplexml-load-string.php

    2) У класса SimpleXMLElement, есть метод xpath:
    php.net/manual/en/simplexmlelement.xpath.php

    3) В xpath можно делать выборку по аттрибутам:
    www.w3schools.com/xsl/xpath_syntax.asp

    По ссылкам есть примеры.

    И не надо слушать говнокодеров не образованных программистов, которые для парсинга XML используют preg_match
    Ответ написан
    7 комментариев
  • Как сделать правильно редирект на главную страницу?

    orlov0562
    @orlov0562
    I'm cool!
    в index.php первой строчкой
    if (isset($_GET['route']) && $_GET['route']=='common/home') {header('Location:/'); exit;}


    или погуглить как делаются нормальные редиректы в твоем фреймворке
    Ответ написан
  • Как сделать трансляцию музыки из группы вконтакте?

    orlov0562
    @orlov0562
    I'm cool!
    Реально, но придется написать парсер который будет парсить вк и синхронизировать с базой сайта и прокси скрипт для трансляции именно музыки. Там будет много подводных камней.
    Ответ написан
    Комментировать
  • Скрипт который удаляет картинки с хостинга в php?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    у тебя должен быть такой скрипт (другие пути):
    if (file_exists('./images/'))
        foreach (glob('./images/*.png') as $file)
            unlink($file);


    такой скрипт удалит все png файлы внутри папки /images/
    Ответ написан
  • Можно ли добавить новую оперативную память?

    orlov0562
    @orlov0562
    I'm cool!
    Да, можно. Тебе надо смотреть чтобы память была DDR2.
    Ответ написан
    Комментировать
  • Как правильно разбить данную страницу?

    orlov0562
    @orlov0562
    I'm cool!
    >> Каким образом это реализовать в посте?
    есть несколько варианта:
    - если это лендинг, тогда делаешь обычную страницу и кастомный template для неё
    - если это каталог вакансий, тогда пост+куча доп полей и из них выводишь
    - пишешь самостоятельно "каталог вакансий" отдельным разделом в WP со своими таблицами и роутами, где будет удобное управление необходимыми разделами

    >> Делать кучу ACF и из них выводить?
    да, можно так, но будет сложно управлять редактору вакансий

    >> А если я хочу сгруппировать по блокам?
    Как вариант, указывать в посте block-id, например <!--block_id_1-- > а в темплейте, искать этот текст и заменять на твой блок, типа того:
    <?php
    $postText = get_the_content();
    if (strpos($postText, '<!--block_id_1>')) {
        ob_start();
        include "block-id-1.php";
        $block = ob_get_clean();
        $postText = str_replace('<!--block_id_1>', $block, $postText);
    }
    echo $postText;
    ?>
    Ответ написан
    Комментировать
  • Умеет ли mysql_query выполнять мультизапросы?

    orlov0562
    @orlov0562
    I'm cool!
    mysql_ не умеет, а mysqli_ умеет: php.net/manual/ru/mysqli.multi-query.php

    да и использовать mysql_* в 2015, это как-то фу-фу-фу
    Ответ написан
    Комментировать
  • Какой самый лучший путь развития до архитектора ПО?

    orlov0562
    @orlov0562
    I'm cool!
    всё выше перечисленное, ну и конечно работать-работать-работать

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

    orlov0562
    @orlov0562
    I'm cool!
    тебе надо добавить два правила:

    1) RedirectMatch 301 /dir1/?$ /dir1/file1.php [L, QSA]
    2) RewriteRule ^/dir1/file1.php$ /file1.php [L, QSA]

    т.е. вначале редиректишь на нужный тебе адрес, потом реврайтишь на нужный тебе файл
    Ответ написан
    5 комментариев
  • Как настроить 301 редирект .htaccess с / (index) на /субдериктория?

    orlov0562
    @orlov0562
    I'm cool!
    Так попробуй:
    RedirectMatch 301 ^/$ http://www.xyz.com/shop
    или так
    RewriteRule ^/$ http://www.xyz.com/shop [L,R=301]
    Ответ написан
    Комментировать
  • Как узнать какая аудио дорожка играет на сайте?

    orlov0562
    @orlov0562
    I'm cool!
    Shazam попробуй
    Ответ написан
    Комментировать
  • Где найти шаблон вывода виджета в Yii?

    orlov0562
    @orlov0562
    I'm cool!
    виджеты в Yii обычно генерируют html сами без обращения к темплейтам, ищи класс MenuWidget и там уже смотри куда они положили темплейт. Поискать можешь прямо по php файлам, по подстроке:
    "class MenuWidget"
    Ответ написан
    2 комментария
  • Как настроить проверку контента?

    orlov0562
    @orlov0562
    I'm cool!
    глазами только смотреть

    нет, есть вариант, написать софт, который будет анализировать изображение, но это слишком сложно и ресурсоемко:
    1) можно проверять наличие определенной цветовой гаммы (цвет кожи) области, относительно остального кадра и если больше порогового значение, значит, теоретически это порнуха.. но, тут есть много "но".
    2) можно искать через внешние сервисы (гугл images) "название" файла, кадры из него, и при нахождении анализировать источник

    самый простой вариант, смотреть самому (или нанять для этого сотрудника :))) ), и банить тех, кто заливает нежелательный контент.
    Ответ написан
    Комментировать
  • Как правильно получить значение php из xml?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    1) покажи полностью твой код
    2) напиши, что по xml ссылке, у меня она не открывается

    попробуй так:
    $xml = file_get_contents('https://export.yandex.ru/bar/reginfo.xml?region=1');
    $o = simplexml_load_string( $xml );
    var_dump( $o );
    Ответ написан
  • Как в PHP присвоить объекту функцию?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    Единственный, более менее адекватный вариант, это переопределить точку входа, и перехватывать автозагрузку классов CMS, подключая свои классы-модуля, которые наследуются от базовых классов CMS.

    Я имею ввиду, когда вызывается CMS\Route, ты перехватываешь эту загрузку, объявив раньше свой загрузчик и подключаешь MyModule\Route который унаследован от CMS\Route и изменяет его поведение.

    Это плохо, и за такое отрывают руки, но это лучше чем расстрел, за то, что хочешь сделать ты :)
    Ответ написан
    1 комментарий
  • Что должен уметь и знать менеджер проектов?

    orlov0562
    @orlov0562
    I'm cool!
    Менеджер проектов, это не про программистские скиллы, а про управление людьми и организацию работы, т.е. про программирование программистов :) Конечно, технические знания нужны, но технические не в плане деталей разработки, а в плане возможности реализации конкретных идей в целом, которые уже дальше кто-то там будет реализовывать. Т.е. тебе надо с технической точки, знать чем отличается css от js, но не обязательно знать чем отличается: border-radius и webkit-border-radius, это должны знать уже другие люди, которым ты поставишь задачи, которая будет звучать так: "этому блоку надо сделать кроссбраузерные круглые углы".

    Что касается, твоего вопроса, то "да подойдут". Только выброси из своего монолога слово "поверхностно" :)
    Ответ написан
    Комментировать