Cele
- Poznanie podstaw języka PHPCzego musisz się nauczyć:
- Podstawowej składni: zmienne, instrukcje if, for, foreach, proste funkcje (operacje na tekście-łańcuchach)- Warto wiedzieć: co to są tablice i jak dostać się do danych w nich zawartych
- Co to są funkcje i jak wyglądają
Przydatne Linki
W sieci są bardzo dobre wprowadzenia do języka. Warto z nich skorzystać:- Kurs PHP na wikibooks - dobre wprowadzenie w podstawy PHP !
- Dokumentacja PHP - tutaj szukamy funkcji, ich opisu itp.
- Proszę nie panikować. Pierwsze lekcje będą dokładniej omawiały kod :)
PHP, Klasy i Frameworki
PHP jest językiem skryptowym stosującym prostą składnię. Kod umieszcza się w plikach o domyślnym rozszerzeniu *.php i następnie umieszcza na serwerze posiadającym interpreter PHP. Przykładowe fragmenty kodu na jakie natrafiamy w czasie nauki języka składają się najwyżej z kilkudziesięciu linijek kodu. Prawdziwe aplikacje mają ich tysiące albo i więcej. Rozwój PHP jak i sposób tworzenia aplikacji zmierza w kierunku jak najlepszego poukładania tych linijek kodu w przejrzystą i czytelną postać. Obecnie stosowanym sposobem organizacji aplikacji jest m.in. projektowanie obiektowe - grupowanie kodu w elementy odpowiedzialne za określone zadania. Każdy komponent składa się z elementów potrafiących wykonywać określone czynności np.: "moduł" artykułów zawiera takie elementy jak "dodaj artykuł", "usuń artykuł" itd. To jest uproszczona koncepcja programowania obiektowego. "Modułem" jest klasa a "elementem" metoda klasy.FUNKCJE
Zanim zabierzemy się za klasy zajmiemy się funkcjami. Funkcja wykonuje określoną czynność. Może np. wyświetlić datę czy zamienić duże litery na małe. Może też połączyć się z bazą danych i wykonać wiele innych czynności. PHP posiada funkcje wbudowane czyli te, z których korzystamy, np: date(), trim(), file(). Można też tworzyć własne funkcje i tym się zajmiemy. Szkieletowa funkcja wygląda tak: Funkcję definiujemy za pomocą słowa "function", po którym podajemy nazwę funkcji i nawiasy (). Klamry określają kod funkcji. Funkcja może (powinna) ale nie musi zwracać jakąś wartość. Komenda return zwraca podaną wartość lub zmienną. return tym różni się od echo czy print (w uproszczeniu) że nie wyświetli danych: Wynik funkcji, która coś zwraca można przypisać do zmiennej - $zmienna = funkcja();. Funkcje mogą (z natury są) bardziej złożone. Pobierają listę argumentów, na których wykonują operacje. Np. echo strlen('tekst'); wyświetli długość łańcucha. Funkcja "strlen" pobiera jako argument łańcuch i zwraca liczbę całkowitą. W przypadku własnych funkcji wyglądałoby to tak: Listę argumentów podaje się w nawiasie po nazwie funkcji. Każdy parametr - zmienną oddzielamy przecinkiem. Zastosowana nazwa będzie przechowywać dane przekazane do funkcji. W drugim przypadku mamy $zmienna = 'coś' - przypisanie wartości do zmiennej w definicji funkcji oznacza jej wartość domyślną tj. jeżeli funkcję wywołamy bez podania argumentu to zostanie używa wartość domyślna. Podsumowanie:KLASY
Klasy to w uproszczeniu zbiór funkcji. Oto przykładowa klasa: Klasę definiujemy stosując słowo "class" i podając po nim nazwę klasy. Nawiasy klamrowe określają zawartość klasy. Klasa zawiera "funkcje" które nazywa się metodami. Metody definiuje się jak funkcje.Klasy natomiast wywoływane są inaczej niż funkcje. Pierwszym etapem jest stworzenie obiektu klasy: Nowy obiekt tworzy się stosując słowo "new", po którym podajemy nazwę klasy (tak jakby była to funkcja). Zmienna ($obiekt w przykładzie) do której przypiszemy stworzony obiekt będzie miała dostęp do wszystkich metod, które wywołujemy: $obiekt->NAZWAMETODY();. Może istnieć wiele obiektów tej samej klasy.
Klasy mają dodatkowe możliwości. Konstruktor to metoda wykonywana automatycznie przy tworzeniu obiektu. Destruktor (PHP5) to metoda wykonywana przy zakończeniu korzystania z obiektu. W PHP4 konstruktor ma taką samą nazwę jak nazwa klasy. W PHP5 konstruktor ma nazwę __construct a destruktor __destruct. Jako że CI jest zgodny z PHP4 nie będziemy się wgłębiać w rozbudowany (i dobry) model obiektowy PHP5. Przykład konstruktora: "test" wyświetli się mimo iż nie wywołaliśmy metody "Klasa". Jest ona konstruktorem naszej klasy. Konstruktory (i destruktory) stosuje się np. do zainicjowania i zamknięcia połączeń z bazami danych, przygotowania ogólnie potrzebnych danych.
Zasięg zmiennych - w funkcjach zmienne wewnątrz nie są dostępne na zewnątrz i na odwrót, chyba że daną zmienną określi się jako globalną. Można tak robić w klasach ale nie jest to zalecane jako że "niszczy" to sens stosowania klas (niezależne klocki aplikacji o jasno określonym działaniu). Dodatkowo klasy mają zmienne dostępne we wszystkich metodach: $this-> określa zmienne dostępne globalnie wewnątrz klasy. Zazwyczaj takie zmienne ustawiane są w konstruktorze a potem wykorzystywane przez poszczególne metody.
