• Как подгружать css и js в yii?

    @kalyabus
    Для того, чтобы файл не клонировался, необходимо настроить компонент assetManager в конфиге:

    return [
        ...
        'components' => [
            ...
            'assetManager' => [
                ...
                'linkAssets' => true,
                ...
           ],
           ...
        ]
    ];


    Тогда файлы из AssetsBundle не будут копироваться, вместо этого на них будут создаваться symlink

    При первом вызове скрипта он клонируется в неизвестное мне место

    Все файлы клонируются (или на них создаются симлинки) в папку, указанную в переменной basePath AssetsBundle, например:

    class FrontendAssets extends AssetBundle
    {
        public $sourcePath = '@app/_assets';
        public $basePath = '@webroot/assets'; // вот сюда они будут сохраняться, @webroot - соответственно алиас пути, конфигурируемый в основном конфиге
    
        public $css = [
            'css/styles.min.css',
        ];
    
        public $depends = [
            'yii\web\JqueryAsset',
            'yii\web\YiiAsset',
            'yii\bootstrap\BootstrapAsset',
        ];
    }
    Ответ написан
    Комментировать
  • Стоит ли рассматривать как первый backend язык php и как влиться в backend разработку без опыта?

    @kalyabus
    В то же время, за определенное время, по все тем же слухам, у меня появилось дикое отвращение к этому языку...спасибо всем холиварам и мемам про php


    Вы наверное читали холивары и мемы двух-трёх летней давности. PHP - перспективный язык, в особенности предпринятые огромные шаги в седьмой ветке. Поэтому принимать скептиков и хейтеров на чистую воду совершенно нельзя, зачастую изучение PHP у этих людей заканчивалось допиливанием работы каких-нибудь говнокодеров, которые и выстраивают такие общественные мнения.

    Бекенд не заканчивается на изучении языка, вам куда больше надо изучить паттерны проектирования, СУБД, кеширование и т.д. и т.п. Поэтому если вы надеетесь, что изучение бекенда закончится на изучении какого-то одного языка - очень зря.

    Я как PHP-шник могу точно сказать, если знаете JavaScript, то учите Node.js, т.к. будет проще влиться с поверхностными знаниями. А дальше по нарастающей: если Node.js станет тесен (что маловероятно), можно подумать о дальнейшем развитии.
    Ответ написан
    Комментировать
  • Как сделать ассоциативный массив уникальным за условием?

    @kalyabus
    php.net/manual/ru/function.array-unique.php

    Смотрите в примерах: php.net/manual/ru/function.array-unique.php#116302 - unique_multidim_array как раз ваш случай.
    Ответ написан
    Комментировать
  • Простой язык разметки на подобии bb-кодов с надежным парсером на php?

    @kalyabus
    А в чем проблема, используйте HTMLPurifier: htmlpurifier.org мощная вещь. В свое время для простоты использовали BBCode, на PHP есть простая до безобразия библиотечка: https://github.com/jbowens/jBBCode но очень быстро отказались в пользу разметки на html с HTMLPurifier
    Ответ написан
    Комментировать
  • Как настроить htaccess, чтобы одна страница сайта открывалась на суб-домене, а остальные на домене?

    @kalyabus
    nginx:

    server {
       listen 80;
       server_name news.site.ru;
       ...
    }
    server {
        listen 80;
        server_name site.ru news.site.ru;
        ...
        location /news {
            rewrite ^/news/(.*)$ http://news.site.ru/$1 permanent;
        }
    }


    .htaccess (могу ошибаться, но что-то вроде):

    <IfModule mod_rewrite.c>
      Options +FollowSymLinks
      RewriteEngine On
      RewriteCond %{REQUEST_FILENAME} ^/news/.*$
      RewriteRule ^/news/(.*)$ http://news.site.ru/$1 [R=301,L]
    </IfModule>
    Ответ написан
    Комментировать
  • Как сделать список github репозиториев c самым большим количеством коммитов и звездочек за последний месяц?

    @kalyabus
    Думаю вам нужно смотреть в сторону GitHub API: https://developer.github.com/v3/
    Ответ написан
    Комментировать
  • Свой блог с нуля, правильно ли это?

    @kalyabus
    Путь любого начинающего пхпшника начинается с написанием своей первой CMS. Чем быстрее он оставит эту идею - тем энергичней он начнет развиваться как профессионал.
    Ответ написан
    Комментировать
  • Какой стиль комментирования кода правильнее?

    @kalyabus
    Про кривые ручки, костыльки и прочую ересь забудьте в комментарии, они должны быть более официозными. Ну и каждую строчку комментировать - явно излишне, это все равно что говорить в слух "А вот щас я сделаю шаг, за ним еще шаг, потом третий и я дойду до холодильника, но если на третьем шаге у меня окажется кошка, то я споткнусь об нее"
    Ответ написан
    Комментировать
  • Как лучше сделать имитацию клика по ссылке?

    @kalyabus
    На отдельной странице выводите только те строки, которые нужно распечатать (ну или все, в зависимости от задачи).

    Допустим, по URL test.local/toprint.html открывается таблица:

    <table>
      <tr>
        <td>1</td>
        <td>2</td>
      </tr>
      <tr>
        <td>3</td>
        <td>4</td>
      </tr>
    </table>


    На выдаваемой странице:

    window.onload = function() {
       window.print();
    };


    На странице, на которой хотим завести распечатку:
    window.open('http://test.local/toprint.html');

    А можно куда более изящно - сгенерировать стили для печати:
    .noprint {
       display: none;
    }


    Подключаем через конструкцию:
    <link rel="stylesheet" type="text/css" media="print" href="print.css" />


    И далее в JavaScript назначаем класс noprint тем элементам, которые не требуется печатать...
    Ответ написан
  • Попросили проверить код, на что смотреть нужно?

    @kalyabus
    Сначала поймите зачем нужно "проверить" код, потом поймете, "что" проверять. Тем не менее приведу выжимку из критериев, принятых у нас

    1. Код не содержит явных и потенциальных ошибок.
    2. Код работает так, как это описано в документации, техническом задании или сопроводительных комментариях.
    3. Стиль кодирования соответствует принятым правилам кодирования
    4. Код имеет сопроводительные комментарии в соответствии с phpDoc
    5. Вложенность блоков не превышает 4-го уровня.
    6. Код не генерирует сообщения уровня Strict, Warning, Notice, Deprecated. Если этого невозможно избежать, то непосредственно перед строкой, которая это генерирует необходимо принудительно отключить error_reporting, а непосредственно после строки включить error_reporting в исходное значение (которое было до этого). Такой код должен быть задокументирован специальным образом.
    7. Закомментированный кусок кода должен быть удален.
    8. В PHP коде (за исключением phpTemplate) запрещены вставки HTML, JavaScript. Все вставки должны производиться через специальные шаблоны.
    9. Классы, функции, переменные и константы должны логически именоваться человекопонятным способом на английском языке в соответствии со стандартами кодирования. Не допускается именование транслитом на русском, либо на иных языках
    10. Область видимости переменных и методов классов всегда должна быть определена (private, protected, public).
    11. Размер одного метода не должен превышать 40-50 строк.
    12. Переменная, используемая в цикле, либо в условном блоке должна быть инициализирована заранее.
    13. Переменная в любой момент времени должна содержать только один тип. Пустая переменная должна содержать null. (не допускается $var = false; $var = 'test'; . Допускается $var = null; $var = 'test';).
    14. При передаче объектов классов в методы должен использоваться контроль типов.
    15. etc...


    Список далеко не полный. Все зависит от проекта, выполняемой задачи, платформы и компетенции команды. Зачастую просят проверить код перед приемкой на сопровождение. Декларируйте какой-то свой свод правил кодирования и отталкивайтесь от него.

    PHP, к сожалению (а может и к счастью), не строгий язык...
    Ответ написан
    Комментировать