<

Pozycjonowanie stron www i SEO / SEM

* możliwość uzyskania szybkich efektów pozycjonowanie jednorazowym i ezane jest robione dobrze

Dlatego znajdziesz na stronie wyników wyszukiwarkach google, yahoo, onet, wp, msn, netsprint, itp.

Kreacja marki obejmuje stworzeniu założeń do budowy marki, wymyślaniu nazwy, zaprojektowaniu znaku graficzne przyciski umieszczone na stronie- dostępność – zmian na stronie zmiany.

PHP

PHP Hypertext Preprocessor[1]
Logo języka
Pojawienie się 1995
Paradygmat wieloparadygmatowy
Typowanie dynamiczne
Implementacje Oficjalna implementacja tworzona przez Zend Technologies
Aktualna wersja stabilna 5.4.0 – 1 marca 2012
Twórca Rasmus Lerdorf
Platforma sprzętowa wieloplatformowy[2]
Platforma systemowa wieloplatformowy
nullwww.php.net

PHP[1]obiektowy język programowania zaprojektowany do generowania stron internetowych w czasie rzeczywistym.

PHP jest najczęściej stosowany do tworzenia skryptów po stronie serwera WWW, ale bywa on także używany do przetwarzania danych z poziomu wiersza poleceń, a nawet do pisania programów pracujących w trybie graficznym (np. za pomocą biblioteki GTK+, używając rozszerzenia PHP-GTK). Implementacja PHP wraz z serwerem WWW Apache oraz serwerem baz danych MySQL określana jest jako platforma AMP (w środowisku LinuxLAMP, w WindowsWAMP). Ponadto PHP da się uruchomić na serwerze IIS (Windows) oraz w chmurze Windows Azure.

Spis treści

Możliwości

Skrypt PHP umieszczony w kodzie HTML

Skrypty napisane w PHP są z reguły umieszczane w plikach tekstowych (czasami razem z kodem HTML albo XHTML). Dzięki temu PHP jest podobny w założeniach do coraz rzadziej stosowanego mechanizmu Server Side Includes[3]. PHP dopuszcza także na wykonywanie skryptów z linii poleceń analogicznie jak Perl, Python oraz Ruby. Jego modułowa budowa daje także możliwość programowania samodzielnych aplikacji z interfejsem graficznym. PHP dopuszcza współpracę z wieloma rodzajami źródeł danych, takich jak systemy zarządzania bazami danych, pliki tekstowe, dokumenty XML oraz serwisy WWW.

Historia

Początki

Pierwsza wersja PHP, rozpowszechniana pod nazwą PHP/FI (Personal Home Page/Forms Interpreter), była zbudowana przez Rasmusa Lerdorfa w roku 1994 jako zestaw skryptów Perla służący do monitorowania internautów odwiedzających jego witrynę. Gdy ruch stał się zbyt duży, przepisał je w języku C, dodając przy tym nowe opcje. Niedługo później ludzie zaczęli prosić go o możliwość użycia tych narzędzi na swoich stronach, zatem 8 czerwca 1995 roku autor udostępnił publicznie kod źródłowy (PHP Tools 1.0). Już parę miesięcy później projekt przekształcił się w zalążek znanego aktualnie języka programowania, kiedy stał się połączony z innym narzędziem Rasmusa Lerdorfa - Form Interpreter, które dało drugi człon nazwy. W 1997 roku ukazało się PHP/FI 2.0, posiadające wtedy parę tysięcy aktywnych użytkowników na całym świecie oraz obsługujące 50 tys. domen. Co ciekawe, wersja ta spędziła przeważajaca ilość "życia" na beta testach. Oficjalne wydanie było tylko jedno oraz ukazało się w listopadzie 1997 roku[4].

PHP 3

W 1997 roku projektem zainteresowali się dwaj izraelscy programiści: Zeev Suraski oraz Andi Gutmans. Odkryli oni, że PHP/FI ma zbyt małe możliwości na potrzeby aplikacji eCommerce, którą tworzyli na uniwersytecie. Zdecydowali wtedy, że przepiszą kod PHP całkowicie od nowa, korzystając z pomocy już istniejącej społeczności PHP. W czerwcu 1998 roku ogłosili PHP 3.0 jako następcę PHP/FI, którego dalszy rozwój stał się wtedy zatrzymany. Był to wielki krok naprzód. PHP 3.0 posiadało całkowicie nową architekturę, która wydatnie zwiększała wydajność. Pojawiły się w niej zalążki programowania obiektowego, ale najważniejszą cechą aplikacji była jej modułowość. Użytkownicy mogli rozszerzać teraz funkcjonalność języka poprzez dodawanie nowych modułów.

PHP 4

Krótko po wydaniu PHP 3, w zimie 1998 Zeev Suraski oraz Andi Gutmans jeszcze raz zabrali się za przepisywanie kodu źródłowego PHP, korzystając z doświadczeń nabytych przy pracach nad poprzednią wersją. Za główne cele obrali poprawienie modułowości oraz wydajności złożonych aplikacji. Choć dotychczasowa wersja potrafiła sobie z nimi poradzić, nie była jednak zbudowana do tego celu oraz przegrywała przez to z innymi rozwiązaniami.

W połowie roku 1999 ukazał się oficjalnie Zend Engine, nowy silnik języka skryptowego, wokół którego niedługo później zaczęto budować PHP 4. Jego nazwa to kompromisowe połączenie imion twórców projektu. Nowa, oparta o niego wersja PHP, ukazała się w maju 2000 roku. Tak jak poprzednio, był to potężny krok naprzód. Programiści posiadali do dyspozycji teraz wiele nowych narzędzi, konstrukcji językowych oraz bezpieczniejszy system wejścia/wyjścia. Od strony administracyjnej ukazało się oficjalne wsparcie dla wielu nowych serwerów. Przez cztery lata od chwili wydania ukazały się trzy kolejne edycje tej wersji oznaczone numerami: 4.1, 4.2 oraz 4.3. W każdej z nich odczuwalne było zwiększenie bezpieczeństwa, szybkości działania oraz możliwości. W 2004 roku obsługiwały one łącznie 20% wszystkich domen sieciowych.

PHP 5

W 2002 roku Zeev Suraski oraz Andi Gutmans ponownie rozpoczęli znaczącą modernizację silnika PHP mającą na celu dodanie do tego języka modelu obiektowego z prawdziwego zdarzenia. W lutym 2003 ukazała się pierwsza wersja alpha nowej wersji PHP oznaczonej numerem 5.0.0. Stabilna wersja ukazała się prawie półtora roku później, w lipcu 2004 roku. Nowości sprawiły, że PHP może konkurować teraz z innymi rozwiązaniami server-side, jak równy z równym. Pojawił się całkowicie nowy model programowania obiektowego, przez co niestety była utracona cząstka kompatybilności z poprzednimi wersjami PHP. Jest to spowodowane zmianą sposobu reprezentacji obiektów. W wersjach wcześniejszych obiekt był równocześnie zmienną, co sprawiało duże trudności, dlatego też w wersji 5 na wzór Javy zmienna obiektowa stała się zaledwie referencją do właściwego obiektu. Aktualnie operacja przypisania powoduje powstanie drugiej referencji wskazującej na ten sam obiekt. Przebudowano także wiele modułów, w tym do obsługi XML-a oraz komunikacji z bazą danych, czyniąc je bardziej przyjaznymi dla programistów. nieoczekiwanie tego udostępniono zbiór interfejsów wydatnie rozszerzających możliwości klas użytkownika[5]. Nastąpiły także zmiany oraz nowości w systemie modułów PHP. Funkcje obsługi języka XML zostały przepisane oraz wbudowane bezpośrednio w jądro aplikacji. nieoczekiwanie narzędzi obsługujących model DOM udostępniono SimpleXML – prosty interfejs do modyfikacji dokumentów XML. Wprowadzono SQLite, nowy, domyślnie "wkompilowany" silnik baz danych[6]. 24 listopada 2005 roku ukazała się wersja 5.1, w której ukazał się PDO – ujednolicony sterownik oraz preprocesor zapytań umożliwiający komunikację z różnymi systemami baz danych. Kolejna wersja – 5.2, ukazała się 2 listopada 2006 roku oraz skoncentrowana była na rozbudowie mechanizmów wejścia/wyjścia (obsługa formatów ZIP oraz JSON, filtry wejścia, obserwacja postępów przesyłania plików) oraz zarządzaniu pamięcią[7]. Ostatnim z tej gałęzi miało być wydanie 5.2.16.[8], mające zakończyć okres oficjalnego wsparcia dla PHP 5.2. 6 stycznia 2011 wydano jednak wersję 5.2.17, która naprawia błąd mogący powodować zawieszenie serwera[9].

30 czerwca 2009 wydano PHP 5.3[10]. Główne zmiany zawierają w sobie wprowadzenie w języku obsługi przestrzeni nazw. Pojawiły się także wyrażenia lambda oraz tzw.domknięcia (znane z takich języków jak JavaScript, Ruby czy Lisp). nieoczekiwanie tego dopracowano także obsługę metod statycznych oraz poprawiono działanie PHP pod systemem Windows wprowadzając kompilacje VC9 oraz eksperymentalne wersje binarne pod x64. Ponadto wprowadzono mysqlnd – opcjonalny, natywny zamiennik PHP dla libmysql oraz poprawiono wiele błędów. Aktualna wersja języka to 5.3.8 wydana 23 sierpnia 2011.

PHP 6

W połowie roku 2005 zaczęły pojawiać się oficjalne sygnały, że rozpoczęto wstępne prace nad PHP 6. Aktualnie publicznie dostępne są codzienne snapshoty rozwojowego repozytorium kodu źródłowego, które da się ściągnąć oraz przetestować. Podstawowym celem jest dalsze dążenie do ujednolicenia projektu, wprowadzenia dalszych możliwości wymaganych przez złożone projekty (m.in. pełne wsparcie unicode czy system cache'owania kodu). Usuwane są też kolejne archaiczne rozwiązania pochodzące jeszcze z czasów PHP/FI oraz PHP3, co w przypadku najstarszych skryptów ponownie spowoduje problemy z kompatybilnością. Zmiany koncentrowały się przede wszystkim wokół wbudowania w język obsługi Unicode, dalszych usprawnień modelu obiektowego oraz wycofania obsługi wybranych, przestarzałych rozwiązań[11][12][13].

Przeciągające się prace nad PHP 6 sprawiły, że pewne z planowanych wcześniej rozszerzeń takich, jak wprowadzenie przestrzeni nazw oraz funkcji anonimowych, dołączono już do wcześniejszych wersji, tworząc gałąź 5.3. Ostatecznie w marcu 2010 roku rozwój wersji 6.0 w dotychczasowym kształcie stał się oficjalnie zawieszony wskutek braku postępów w implementacji standardu Unicode oraz wewnętrznych sporów w gronie czołowych programistów[14][15]. Z uwagi na z tym gałąź trunk, gdzie dotychczas trwał rozwój PHP 6, była zarchiwizowana, a następnie reaktywowana na bazie wersji 5.3.0. W późniejszych miesiącach podjęto decyzję, że najbliższe nowe wydanie będzie nosić numer 5.4[16].

Moduły

Information icon.svg Osobny artykuł: Moduły PHP.

Cała funkcjonalność PHP zawarta jest w czterech zbiorach modułów różniących się od siebie dostępnością dla programisty.

Moduły jądra 
Część silnika PHP; stale aktywne.
Moduły oficjalne 
Element każdej dystrybucji PHP; aktywowane ręcznie przez administratora serwera.
Repozytorium PECL 
Darmowe moduły o otwartym źródle wykonywane przez programistów z całego świata, przeznaczone do samodzielnej kompilacji. Począwszy od wydania PHP 5 do PECL przeniesionych było wiele wcześniejszych modułów oficjalnych, najczęściej tych niestabilnych albo sporadycznie używanych.
Repozytorium PEAR 
Zbiór realizujący typowe zadania klas o ujednoliconej budowie.

Zdecydowana przeważajaca ilość modułów ma budowę proceduralną. Dopiero w PHP 5 rozpoczęto wykonywanie w pełni obiektowych rozszerzeń oraz obiektowych zamienników starych funkcji.

Składnia

Wikibooks-logo.svg
Sprawdź publikację na Wikibooks:
Składnia języka PHP

Składnia PHP jest oparta na składni języków C, Java oraz Perl.

<?php
$a = 5;
$b = 3;
 
function suma($zmienna1, $zmienna2)
{
        return $zmienna1 + $zmienna2; //Dodajemy argumenty oraz zwracamy wynik
}
 
echo suma($a, $b); // 8
?>

Cały kod PHP musi zawierać się pomiędzy znacznikami: <?php oraz ?>, w przeciwnym wypadku interpreter nie wykona kodu. Starsze wersje dopuszczały także parę znaczników <? oraz ?>. Aktualnie są one niezalecane, a w PHP 6 nie będą dostępne.

Przykładowe zastosowanie

Pewne aplikacje napisane w PHP korzystają z formularzy. Przykładowa aplikacja przypominająca prosty kalkulator była zamieszczona poniżej:

<?php
if (isset($_POST'licz')) {
        $liczba_a=floatval($_POST'a'); // Konwersja na liczbę zmiennoprzecinkową
        $liczba_b=floatval($_POST'b'); 
        echo "Chcesz obliczyć sumę następujących liczb:" . "<br />" . "<b>";
        print_r($liczba_a);
        echo "</b>" . "<br />" . "Oraz:" . "<br />" . "<b>";
        print_r($liczba_b);
        echo "</b>" . "<hr />";
        echo "Ich suma to:" . " <b>";
        $wynik = $liczba_a + $liczba_b;
        echo $wynik;
        echo "</b>";
} else {
        echo "Wpisz liczby.";
}
?>
<!-- Poniżej istnieje sam formularz -->
<form action="<?php echo ($_SERVER'SCRIPT_NAME'); ?>" method="POST">
Podaj dwie liczby:<br />
Liczba A: <input name="a" /><br />
Liczba B: <input name="b" /><br />
<input type="submit" name="licz" value="Oblicz!" />
</form>

Ze względów bezpieczeństwa nie winno się stosować $_SERVER['PHP_SELF'] może to grozić atakami XSS, winno się stosować $_SERVER['SCRIPT_NAME'].

Klasy oraz obiekty

Klasy deklarujemy następująco (od PHP5):

<?php
class MojaKlasa
{
 
  public $zm_publiczna; //definiowanie zmiennej publicznej
  private $zm_prywatna; //definiowanie zmiennej prywatnej
  protected $zm_chroniona; //definiowanie zmiennej chronionej
  const STALA = 124; //definiowanie stałej, stała musi zostać określona (jeśli nie - błąd składni)
 
 
  public function __construct()
  {
    echo 'Jestem konstruktorem klasy MojaKlasa. Za każdym razem kiedy powołasz mój obiekt do życia, wykonam operacje zawarte w tej metodzie.<br />';
  }
 
  public function zrob_cos()
  {
    echo 'Właśnie wykonywana jest funkcja zrob_cos()<br />';
  }
 
  public function __destruct()
  {
    echo 'Jestem destruktorem klasy MojaKlasa. Za każdym razem kiedy usuniesz mój obiekt, wykonam operacje zawarte w tej metodzie.<br />';
  }
}
$mojobiekt = new MojaKlasa(); //powoła do życia obiekt oraz wykona operacje zawarte w funkcji __construct()
$mojobiekt -> zrob_cos(); // Wydrukuje komunikat
//kończąc kod PHP, wszystkie zmienne są usuwane, wywoływana jest funkcja __destruct()
?>

Komentarze

Rozróżniamy trzy typy komentarzy: Pierwszym z nich jest wieloliniowy:

<?php
/* To jest komentarz
   wieloliniowy, zamykany znacznikiem:
*/
?>

Kolejnym jest jednoliniowy:

<?php
//to jest komentarz jednoliniowy, który nie potrzebuje zamknięcia
?>

Ostatnim jest jednoliniowy (w innej wersji):

<?php
# to jest komentarz jednoliniowy, który nie potrzebuje zamknięcia
?>

Typy danych oraz zmienne

Zmienne w PHP nie wymagają deklaracji oraz nie posiadają jawnych typów. Jeżeli kontekst (na przykład definicja argumentu funkcji albo operator) danego wyrażenia wymaga zmiany jego typu, zostaje ono rzutowane do typu wymaganego. Wśród obsługiwanych rodzajów danych znajdują się:

Typ Opis
string Łańcuch tekstowy Objęty znakami cudzysłowu albo składnią here document
int Liczba całkowita Obsługiwane są stałe całkowite w notacji dziesiętnej, szesnastkowej oraz ósemkowej
float Liczba zmiennoprzecinkowa
bool Typ logiczny Do fałszu konwertowanych jest wiele postaci zmiennych innych typów
array Tablica Przechowuje dowolną liczbę elementów dowolnego typu. Indeksowana ciągami znaków albo liczbami całkowitymi
object Obiekt
null Zmienna niezdefiniowana
resource Zasób spoza PHP przykładowo deskryptor pliku albo połączenie z bazą danych

Domyślnie PHP stale (pomijając obiekty od wersji 5) przekazuje zmienne przez wartość. Przekazywanie przez referencję zachodzi w wybranych funkcjach wbudowanych, oprócz tego da się je narzucić w deklaracji własnej funkcji:

<?php function foo(&$value) { $value = 'bar'; } ?>

Klasy oraz obiekty

Elementy programowania obiektowego pojawiły się w PHP 3. W PHP 4 udostępniono statyczne wywoływanie metod. W PHP 5 możliwości zostały rozszerzone pomiędzy innymi o statyczne zmienne klasy, obsługę interfejsów, kontrolę dostępu, kontrolę typów czy klasy oraz metody abstrakcyjne. Model PHP wzoruje się na językach C++ oraz Java. Od wersji 5 PHP ma mechanizmy refleksyjne[17], które pozwalają na analizę klas, funkcji oraz rozszerzeń. Bez zainstalowania odpowiedniego rozszerzenia nie dopuszczają one jednak zmiany tych struktur w czasie wykonywania, przykład klasy:

<?php
class Przyklad
{
  public function powiedzCzesc($imie)
  {
    return 'Cześć, '.$imie;
  }
}
 
$objPrzyklad = new Przyklad;
echo $objPrzyklad->powiedzCzesc('Adam');
?>

Funkcje oraz struktury kontrolne

PHP jest wyposażone w szeroki wachlarz domyślnych funkcji. Niekonsekwencja w ich nazewnictwie (np. naprzemienne stosowanie CamelCase oraz znaku podkreślenia) jest nieraz przedmiotem krytyki PHP. Znaczna cząstka funkcji pochodzi jednak od ich odpowiedników w języku C oraz różnice pomiędzy nazwami funkcji wywodzą się właśnie z różnic w nazewnictwie z odpowiednich bibliotek C.

PHP obsługuje rekurencję do poziomu około stu zagłębień. Jeśli stos parsera zostanie przeciążony nadmierną ilością wywołań albo iteracji, wywołanie aplikacji zostanie przerwane.

Obsługa błędów

Wersja 5 wprowadziła mechanizm wyjątków. Tylko cząstka modułów powiadamia jednak użytkownika o wystąpieniu błędów za ich pośrednictwem; przeważajaca ilość umieszcza je na wyjściu programu w miejscu ich wystąpienia. Przykład:

<?php
  class Foo
  {
    private $zmienna;
 
    public function setZmienna($cos)
    {
      $this->zmienna = $cos;
    }
 
    public function getZmienna()
    {
      if($this->zmienna == '')
      {
        throw new Exception('Proszę ustawić zmienną');
      }
      else
      {
        return $this->zmienna;
      }
    }
  }
 
  try
  {
    $objFoo = new Foo;
    print $objFoo->getZmienna();
  }
  catch(Exception $e)
  {
    die('Wystąpił błąd: ' . $e->getMessage());
  }
?>

Obsługa baz danych

PHP obsługuje przeważajaca ilość znanych baz danych: MySQL, Postgres, Oracle, Mssql, DB2. Poniżej przedstawiono wykonanie zapytania SQL na bazie danych MySQL przy pomocy biblioteki PDO dla PHP5:

<?php
 
   try
   {
      $pdo = new PDO('mysql:host=localhost;dbname=articles', 'root', 'root');
      $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
      $stmt = $pdo -> query('SELECT id, name, content FROM articles ORDER BY id');
      echo '<ul>';
      foreach($stmt as $row)
      {
          echo '<h1>'.$row'name'.'</h1>';
echo $row'content'.'<hr />';
      }
      $stmt -> closeCursor();
      echo '</ul>';
   }
   catch(PDOException $e)
   {
      echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
   }

Zastosowanie

Popularność

W roku 1997 język PHP/FI obsługiwało ok. 50 tysięcy domen internetowych. Do roku 2005 udział PHP rósł. Później uległ stabilizacji na poziomie ok. 20 milionów domen[4][18] (9% wszystkich)[19]. Aktualnie jest dominującym językiem programowania oraz zawiera w sobie około 75% domen internetowych[20]

Aplikacje

W PHP powstała znaczna cząstka aktualnie istniejących aplikacji sieciowych. Należą do nich systemy zarządzania treścią, systemy forów dyskusyjnych, aplikacje pocztowe oraz klienty baz danych.

Przypisy

  1. 1,0 1,1 Aktualna nazwa, PHP Hypertext Preprocessor, jest akronimem rekurencyjnym, dawniej skrót rozwijano jako Personal Home Page
  2. PHP: General Installation Considerations – Manual – uwagi dot. instalacji na wielorakich systemach operacyjnych
  3. Apache Tutorial: Introduction to Server Side Includes – kurs Apache – wprowadzenie do SSI
  4. 4,0 4,1 PHP: History of PHP and related projects –Manual
  5. SPL-StandardPHPLibrary
  6. PHP: Migrating from PHP 4 to PHP 5 –Manual
  7. PHP 5.2.0 Release Announcement –ogłoszenie o wydaniu wersji 5.2.0
  8. PHP 5.2.16 Release Announcement -ogłoszenie o wydaniu wersji 5.2.16
  9. PHP 5.2.17 Release Announcement -ogłoszenie o wydaniu wersji 5.2.17
  10. PHP 5.3.0 Release Announcement – ogłoszenie o wydaniu wersji 5.3.0
  11. Minutes PHP Developers Meeting – plany rozwoju PHP 6
  12. PHP 6.0.0PHP Release Management Wiki
  13. "PHP for Grown-ups" – planowane zmiany w PHP 5.3 oraz 6 – prezentacja Andrei Zmievski z konferencji CONAPHP w Brazylii w październiku 2008.
  14. Lukas Kahwe Smith: Why I am pissed (ang.). Poo-tee-weet, 2010-03-13. [dostęp 2011-01-21].
  15. Johannes Schlüter: Future of PHP (ang.). 2010-03-12. [dostęp 2011-01-21].
  16. PHP 5.4 alpha (ang.). Lista dyskusyjna PHP-DEV, 2010-11-01. [dostęp 2011-01-21].
  17. PHP: Reflection – Manual
  18. PHP: PHP Usage Stats
  19. TIOBE Software: The Coding Standards Company
  20. nullw3techs.com/technologies/overview/programming_language/all

Sprawdź też

Wikibooks-logo.svg
Sprawdź publikację na Wikibooks:
PHP

Paradygmaty programowania:

Platforma LAMP:

Linki zewnętrzne

www.dochody.ponizsze.jaworzno.pl | Wczasy nad morzem | filelaser.pl | kredyt inwestycyjny | kody