Скорее всего, вы все же не понимаете в чем разница. Приведите пример конкретного метода, который у вас вызывает затруднения, а вам уже напишут стоит ли его делать статическим и почему.
Роман: лучше смените хостера. 5.2 - это уже очень-очень-очень старая версия. Если у вас старый код, можете конечно попробовать длинный синтаксис для массивов, но большинство современных фреймворков и библиотек просто откажутся на таком старье работать. Ищите лучше 5.4.
Подобные ошибки часто возникают, когда параметры нужно передавать в виде "ключ => значение", а пользователь передал только значение. Посмотрите где у вас в коде создаются объекты AccessRule и проверьте, что им передается в качестве конфига.
Сергей: если файл со стилями лежит там же в корне сайта, то просто добавьте в AppAsset. Если где-то еще и не доступен из веб, тогда создайте свой AssetBunde. За подробностями в доку, там все написано с примерами. Или посмотрите те ассеты, что уже есть в системе.
P.S. Не понятно зачем вам именно FrontendAsset. frontend\assets\AppAsset вроде бы ту же функцию выполняет.
Vagrant просто управляет виртуалкой, может ее настроить по заранее заданному конфигу. Посмотрите видео, там вроде показывают. Вы редактируете файлы локально, а виртуалку используете, чтобы посмотреть как оно работает.
Гляньте видео https://www.youtube.com/watch?v=DlgadZLOK-M мне кажется вам будет полезно. Вкратце: для своего кода нужно писать юнит тесты и писать код так, чтобы он мог быть покрыт именно юнит тестами. То, что вы мокаете какую-либо зависимость не означает, что тест становится интеграционным.
Чужой код тестировать вообще не нужно. Если вам нужно протестировать взаимодействие с чужим кодом - это уже территория интеграционных тестов.