Есть ли простой способ преобразовать классы C# в PHP?

Я привык писать Windows-приложение на C#. Однако у меня есть бесплатное размещенное на PHP веб-пространство, которым я бы хотел воспользоваться. У меня есть базовые представления о PHP, но я никогда не использовал его объектно-ориентированные возможности.

Есть ли простой способ преобразовать классы C# в классы PHP или просто невозможно написать полностью объектно-ориентированное приложение на PHP?

Обновление: на .NET framework нельзя полагаться, кроме основ. Основной целью будет реструктуризация свойств классов, перечислений переменных и т. Д. PHP будет размещен на сервере Linux.

Ответов (5)

Решение

Вполне возможно написать приложение PHP почти полностью с использованием объектно-ориентированной методологии. Вам нужно будет написать некоторый процедурный код для создания и запуска вашего первого объекта, но помимо этого существует множество фреймворков MVC для PHP, которые все объектно-ориентированы. В качестве примера я бы посмотрел Code Igniter, потому что, на мой взгляд, он немного легче.

Огромной проблемой будет репликация .Net Framework в PHP, если ее использует класс C#.

Я не знаю об инструменте для автоматизации процесса, но вы можете использовать Reflexion API для просмотра своего класса C# и создания соответствующего класса PHP.

Конечно, трудность здесь состоит в том, чтобы правильно сопоставить типы C# с PHP, но при достаточном модульном тестировании вы сможете делать то, что хотите.

Я советую вам пойти по этому пути, потому что я уже сделал преобразование C# в VB и C++. Это было мучительно, но результат того стоил.

Если проблема в том, что вы хотите перейти на PHP и хотите продолжить работу на сервере Windows с поддержкой .NET, вы можете подумать о переносе кода с помощью swig .

Это можно использовать для сгенерированных заглушек для выполнения из php, а затем вы можете переписать код .NET в PHP поэтапно.

Это работает для любого из поддерживаемых языков. т.е. вы можете постепенно переписывать приложение с c ++ на java, если действительно этого хотите.

PHP не поддерживает перечисления, что может быть одной из областей несоответствия.

Кроме того, следите за типами коллекций. PHP, несмотря на его функции объектно-ориентированного программирования, обычно не имеет альтернативы чрезмерному использованию типа данных массива. Ознакомьтесь с разделами руководства PHP по итераторам, если вы хотите увидеть что-то еще.

Общие, защищенные, частные и статические свойства классов работают примерно так, как ожидалось.