2013-05-26 11 views
9

Więc zanim ja zawsze używałem stylu proceduralnego do kodu PHP, takich jak:Czy dopuszczalne jest stosowanie kombinacji stylu obiektowego ze stylem proceduralnym w kodowaniu PHP?

mysqli_connect 

lub

mysqli_prepare 

a teraz przypadkowo zaczęła mieszać wszystko i chciałbym zrobić coś takiego:

mysqli_connect(); 

który jest styl proceduralny, a następnie kolejna komenda:

$mysqli->prepare(); 

który jest stylem obiektowym.

Mój kod nadal działa, ale jeśli zajrzę do php.net za każdym razem, gdy pokazuje przykłady, cały przykład jest zorientowany obiektowo lub proceduralnie. Pytam więc, czy jest w porządku, aby używać obiektu i proceduralnego kodu php w tym samym czasie. Z góry dziękuję!

Odpowiedz

11

Podczas gdy sposób kodowania jest wyłącznie decyzją użytkownika i unikalnym stylem, powiedziałbym, że przy podejmowaniu decyzji o procedurze, obiektowości lub mieszaniu należy wziąć pod uwagę kilka czynników.

specyfikacje programu -

Przede wszystkim, jeśli jesteś w zespole, pisząc program dla kogoś innego, albo po własnych specyfikacji, należy rozważyć, czy wybór został już wykonany.

Dostępność -

Spójrzmy prawdzie w oczy. Czasami najlepsze biblioteki są dostępne w trybie obiektowym lub proceduralnym, a nie w obu. W takim przypadku zmiana z jednego stylu wymagałaby użycia zupełnie innej biblioteki lub samodzielnego zbudowania biblioteki klas lub funkcji. Dostępna biblioteka może zaoszczędzić czas, a jedyny koszt offsetowy jest funkcją proceduralną w programie zorientowanym głównie na obiekt lub odwrotnie.

Znajomość -

podobne do dostępności, może być bardziej zaznajomieni z pewnej klasy lub zestaw funkcji. Chociaż możesz mieć czas, aby zatrzymać i nauczyć się nowego modułu klasy, aby dodać do swojej wiedzy, możesz zaoszczędzić czas dzięki bibliotece procedur, której już się nauczyłeś i dokładnie przetestowałeś. Więc jeśli pracujesz na osi czasu, możesz chcieć pójść z bardziej znaną biblioteką. Jeśli jednak szukasz informacji i nauki, możesz poświęcić czas na przeczytanie dokumentacji, zainstalowanie i przetestowanie nowego rozwiązania.

obsługa danych i szybkość -

jeden czynnik Muse o to, jak ty przenoszenia danych. Jeśli dane należą do klasy, klasa prawdopodobnie będzie dysponować metodami działania na danych. W takiej sytuacji programowanie proceduralne wymagałoby uzyskania danych z klasy lub obiektu, działających na danych, a następnie aktualizacji obiektu. Lepszym projektem byłoby włączenie funkcji do obiektu w mojej opinii.

Jeśli jednak cała obsługa danych jest poza klasą, użycie funkcji może być szybsze. Jeśli chcesz użyć metody klasy, musisz załadować klasę i ewentualnie utworzyć obiekt. Nawet metody statyczne mogą działać wolniej niż funkcja. Jeśli więc rozważasz szybkość, na przykład w pętli, zastanów się, ile kroków musi przejść twój program i PHP, aby dostać się do funkcji, klasy lub obiektu.

Patrząc w przyszłość -

Jeśli chcą, aby wybrać pomiędzy programowaniem proceduralnym lub zorientowanym obiektowo, a następnie spróbuj przewidzieć, jakie będą najbardziej przydatne w przyszłości. Zorientowałem się, że programowanie obiektowe jest bardzo użyteczne przy tworzeniu kodu wielokrotnego użytku. Zauważyłem, że programowanie proceduralne jest bardzo użyteczne w przypadku kodów linii poleceń oraz organizowania i używania obiektów. Prawdopodobnie pozostaną one takie same, jak ewoluuje nauka informatyczna, a więc praca, którą wykonałem wcześniej, z większym prawdopodobieństwem przyda się ponownie.

W przeciwieństwie do niektórych bibliotek i języków programowania może zachęcać do stylu. PHP obsługuje oba style. Ale jeśli moje ogólne wrażenie jest poprawne, to PHP porusza się w kierunku stylów obiektowych. Wybierając funkcje PHP i obiekty, spójrz i zobacz, do której wersji PHP zostały stworzone funkcje. Sprawdź także, czy któraś z funkcji proceduralnych jest amortyzowany lub przestarzały. Jeśli tak, zastosuj podejście obiektowe, ponieważ dzięki temu twój program będzie bardziej przydatny, gdy te funkcje proceduralne przestaną być obsługiwane.

Mam nadzieję, że daje to pewne podstawy. Dzięki.

1

Gorsze rzeczy dzieją się w świecie kodowania. Niektórzy twierdzą, że to po prostu nieprawda. Inni po prostu dostają zapłatę i cieszą się, że kod działa. Wszystko zależy od tego, jakiego programisty chcesz być.

http://www.codingconfessional.com/

lub

http://pragprog.com/the-pragmatic-programmer

+0

Chciałem tylko upewnić się, że to zadziała bez względu na wszystko. Jeśli nadal będzie działać bez względu na wszystko, wybieram drugą opcję :). – edwardtyl

+0

Zawsze jest co najmniej trochę kodu proceduralnego w największym projekcie OOP ciężkiego php (coś musi najpierw wytworzyć pierwszy obiekt i uzyskać rzut kulą). – Orangepill

+0

W rzeczywistości powinieneś używać dowolnego stylu kodowania, który najlepiej pasuje do Twojego mentalnego modelu problem. – Orangepill

1

Korzystanie zarówno nie złamie kod i technicznie „ok”, ale pod przyszłe utrzymanie aplikacji przez ciebie lub kogoś innego. O wiele łatwiej jest odczytać kod, jeśli jest spójny i czysty, a zaoszczędzisz dużo czasu później, wybierając i przyklejając go teraz (najlepiej OOP).

Powiązane problemy