Переписать приложение среднего размера в ОО - PullRequest
1 голос
/ 26 мая 2009

Какие апраоши я могу взять, чтобы переписать довольно большой процедурный php примерно 2000 строк кода app как oo приложение И я должен даже попытаться сделать это, или я должен основываться на существующем приложении? Я написал это, когда изучал программирование, и теперь я хочу расширить его.

Ответы [ 4 ]

2 голосов
/ 26 мая 2009

Я бы, вероятно, сделал следующее, преобразовав приложение в MVC:

  1. Определить назначение каждой функции (обрабатывает ли она параметры запроса, выводит данные, запрашивает базу данных?)
  2. Попробуйте реорганизовать функции, выполняющие все вышеперечисленное, разделив их на функции, не выполняющие ничего, кроме одной из этих вещей.
  3. Для каждой функции попытайтесь найти подходящий верхний объект / класс, который может содержать эту функцию в качестве метода

    function addUserRecord($dbHandle, $userData) {[...]} 
    // Becomes
    class User {
        private $db;
        public function addUser($data) {
            [...]
        }
    }
    
  4. Для каждого отдельного * .php-файла, доступного извне, включите его в действие соответствующего контроллера:

    http://foo.bar.com/user/addUser.php // становится
    http://foo.bar.com/user/add-user

    Соответствующий контроллер, используя Zend_Framework

    class UserController extends Zend_Controller_Action {
        public function addUserAction () {
           [...]
        }
    }
    
  5. Переместить все выходные данные, такие как эхо, в представления.

Самым сложным, вероятно, будет создание правильных моделей, но это очень важно и станет основой вашего приложения.

2 голосов
/ 26 мая 2009

Серебряной пули нет. Тем не менее, вы могли бы сделать намного хуже, чем взять эту книгу: http://www.amazon.co.uk/Working-Effectively-Legacy-Robert-Martin/dp/0131177052

1 голос
/ 27 мая 2009

Если вы хотите добавить новые функции или значительно расширить приложение, улучшайте существующую кодовую базу по мере необходимости. Всегда проверяйте код лучше, чем проверяйте. Но не стоит тратить время на переписывание.

Написание тестов, доказывающих, что существующая унаследованная база кода выполняет важные бизнес-требования, также поможет вам Затем вы можете изменить старый код, зная, что вы не нарушаете работу приложения. Если вы что-то сломаете, вы будете знать, что, примерно почему, и сможете быстро это исправить.

0 голосов
/ 26 мая 2009

Преимущества хорошо спроектированной ООП заключаются в том, что ваши компоненты легко повторно используются и что они просто облегчают работу команды Ant, опять же, проще поддерживать код, где вы знаете, где что, а в OO вы можете найти его только по именам классов. Итак, вы решаете, нужно ли вам это. Иногда больше меньше ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...