Заведется конечно. Фишка silex - модульность. Доктрина это лучшее что есть в мире php как в качестве dbal так и orm. Другое дело что она иногда и не нужна вовсе. Вы можете любой компонент заменить на тот, что вам нравится. Базируется silex на компонентах symfony, вы просто выбираете то что хотите использовать и компонуете это все.
@user4291 профит от написания программы на Си в плане производительности легко срезается затратами на разработку и поддержку. Да и судя по той задаче, которую поставил автор вопроса, у него нету никакого опыта в кросплатформенной разрабокте на Си, а ему именно для этих целей и нужен интерпритатор. С другой стороны судя по имеющейся информации, подход к решению проблемы выбран вкорне неверный.
как я понял из ваших комментариев, у вас есть некий код на php, который вы хотите запускать в приложениях на xamarin? Можете пояснить зачем, объемы кода и смысл задачи? Ибо если так, то может стоит просто найти другой подход к решению задачи?
Выполняется не код а сгенерированные опкоды. Смотрите директорию zend. Все что относится именно к выполнению там. Виртуальная машина - все файлики с именем zend_vm.
Как я уже говорил, проще собрать php под нужные платформы.
@user4291 как раз таки на c# стабильности будет больше, так как меньше вероятность ошибки при одинаковых временных затратах. Да и проще имплементить. Производительность да.
@Avery007 xamarin использует mono, насколько я помню, так что ничего он в java переводить не будет, просто будет запускать свой рантайм (к слову по производительности с java особо нету различий).
Но вот из вашего этого комментария я начинаю понимать, что вам это нужно не в целях обучения, и тогда мой ответ нет, у вас не выйдет написать за 1,8 месяца рабочий интерпритатор для использования его в проекте. Проще либо собрать php для используемой платформы (вроде как это возможно) и написать простенький биндинг в .net, или же написать транслятор php в c#, что проще чем написать интерпритатор.
@user4291, если цель написать быстренько, кросплатформенно и обучения ради, можно писать и на c#. Я видел интерпритаторы javascript на javascript, которые созданы только что бы показать, как пишутся интерпритаторы.
@OnYourLips ну маленькая оговорка, PyPy реализован чуть чуть сложнее нежели просто виртуальная машина на python. По сути все сводится к промежуточному коду на rpython и дальнейшей трансляцией оного в более низкоуровневые яызыки, причем как вариант есть поддержка CIL, который использует C#.NET.
@Avery007 почитайте про лексеры и парсеры и зачем они нужны, прочитайте про генераторы кода оных, они же есть и под c#. Это сильно упростит разбор кода, и не нужно будет таких вот кастылей. У вас в синтаксическом коде будет просто нода defineFunction при определении новой функции, и invoke при вызове. Как реализовать ООП лучше я вам не подскажу, ибо это нужно думать. Есть стандартные подходы для реализации наследования в иртерпритаторах, хранения метаданных классов и т.д разруливание какой метод у какого класса должен быть вызван.
raid на ssd это уже довольно много денег, если выстраивать иерархию (медленные hdd, быстрые, ssd ) по частоте использования, то выходит дешевле но сложнее. + стоимость администрирования, количество гемороя и т.д. Ну и опять же за размещение сервера в стойке и трафик всеравно платить придется. Так что думаю cdn не будет так уж сильно дороже.
не понял мысли, я думал что вообще в голосовых/видио чатах хранить что-либо глупо, проще использовать p2p сеть на udp (строить свой протокол поверх udp, или же использовать готовые для целей реал-тайм стриминга протоколы).
если вы работаете по фиксированной стоимости, без оценки никак. Оценивать нужно исходя из задачи, за сколько примерно напишите + риски. Причем если четкого представления у клиента нету, его нужно предупредить о дополнительных рисках и включить их в цену.
ленивую загрузку обещали добавить только во 2-ой ветке angular-а, пока только одним куском приложение собирать. Для single-page приложений это не так критично.
Увы динамически определить директивы или сервисы после того как отработал bootstrap не выйдет, да и в последствии это скажется на производительности. Лучше один раз загрузить много чем потом ощущать лаги при подгрузке компонентов.