Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: czy przechodzić ze struktury na oop
Forum PHP.pl > Forum > PHP > Object-oriented programming
vegelus
Witam szanowne grono
Wybrałem ten dział gdyż chyba jest bezpośrednio związany z oop.

Odziedziczyłem po byłym adminie bardzo rozbudowaną aplikację do zarządzania firmą napisaną w PHP4 (strukturalnie). Z analizy kodu (przez kilka miesięcy ślęczę nad kodem by cokolwiek naprawić lub zmienić) wynika, że ta aplikacja żyła własnym życiem. Coś trzeba było dodać to "if" i po problemie, jak się okazało, że Kowalski ma inne uprawnienia to "if" i po problemie, jak Wiśniewska chciała inne kolorki to "if" i po problemie sad.gif Teraz mam aplikację naszpikowaną ifami, casami i innymi warunkami. Obecnie muszę wprowadzić kilka zmian i aż się prosi o obiekty i dziedziczenie żeby wyeliminować te cholerne if'y.

Problemy
1. Posiadam serwer na OVH i mogę przełączyć się na PHP5 ale wtedy wszystkie krypty zaczną działać pod 5 i boję się efektu przejścia?
2. Czy warto w ogóle przebudowywać cały kod na oop, czy lepiej na podstawie funkcjonalności zaprojektować cała aplikację od podstaw?
3. Poprawki wstawiać w oop czy trzymać się struktury?

takie akademickie pytania, do szału mnie jednak doprowadza ślęczenie nad kodem przez kilka godzin żeby odkryć, że ten if odpowiedzialny jest za prawidłowe wyświetlenie danych.

A może jakieś inne sugestie co z tym można zrobić?
LBO
ad 2. Pisz od nowa. Jest takie powiedzenie Z gówna kryształy nie zrobisz. Odziedziczony kod kiepskiej jakości częściej jest do wymiany, niż do refaktoryzacji.
ad 1. Problem zniknie, jeżeli zastosujesz się do punktu 1-ego
ad 3. nie wiem smile.gif
Fifi209
Często, gdy piszę coś na szybko to wszystko strukturalnie. Po jakimś czasie, gdy aplikacja się rozrasta zaczynam zabawę w OOP od początku.

Tak więc i Tobie radzę napisać od początku i stworzyć choćby dla siebie dokumentację. Aplikacje pisane w OOP jest zawsze łatwiej modyfikować.
dr4ko
Sam mam podobny problem i myśl o refaktoryzacji nawet mi nie przeszła przez głowę. Pisz od podstaw, mniej nerwów będzie cię to kosztowało.
pp-layouts
Przejście z PHP4 na PHP5 nie powinno spowodować najmniejszych problemów, chyba że jakiś łoś się odwoływał do globalsów. Zmieniasz odwołania i śmiga.

Żeby się nie grzebać w jakimś lewym kodzie, jest szybki sposób: robisz listę wszystkich zczytywanych globalsów w tablicy, dajmy na to $t. Później foreach ($t as $k) $$k = $_REQUEST[$k]; i wrzucasz to do pierwszego z brzegu includa. Prowizorka, ale szybka i skuteczna.

Żeby nie było, ten sposób to tylko na kod którego nie chcesz w ogóle dotykać, po prostu mały patch, żeby chodziło pod PHP5, a przy okazji działało bezpieczniej niż lamerski orgyginał.

vegelus
Globalsów nie zauważyłem ale obecnie babram się w jednej funkcji składającej się 3000 linii a sam plik ma 3 takie funkcje. Po mojej interwencji funkcja zmalała do 100 linii i 13 plików z innymi funkcjami pomocniczymi i aż ręka drży aby tego w klasę nie wpakować winksmiley.jpg

Co do refaktoryzacji to problem jest finansowy. Oni mi na razie nie zapłacą a mnie szlag trafia jak jakieś pole w formie nie działa poprawnie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.