Niezalogowany [ logowanie ]
Subskrybuj kanał ATOM Kanał ATOM    Subskrybuj kanał ATOM dla tagu php Kanał ATOM (tag: php)

Autor wpisu: widmogrod, dodany: 15.01.2012 12:55, tagi: php

Ekran uruchamiania PHP Storm

Jest to pierwszy artykuł z serii „W poszukiwaniu optymalnego środowiska programistycznego„, w którym postaram się odpowiedzieć na pytanie czy istnieje IDE, które nie przeszkadza w codziennej pracy programisty i upraszcza najczęściej wykonywane operacje. Przeprowadzane testy polegały na pracy przez około 5 dni roboczych, w wybranym programie, nad tym samym projektem w celu zmarginalizowania przyzwyczajenia do mojego obecnego zintegrowanego środowiska programistycznego – Eclipse. Projekt składał się z kilku tysięcy linii kodu. Komputer na jakim pracowałem to 3 GB RAM, Intel Core 2 Duo T5500 i Windows 7 (Opcjonalne Mac OS X ale to w kwestii zrzutów ekranu z PHP Storm).

PHP Storm – zintegrowane środowisko programistyczne

Czym ma być PHP Storm, najlepiej mówią twórcy:

PhpStorm is a lightweight and smart PHP IDE focused on developer productivity that deeply understands your code, provides smart code completion, quick navigation and on-the-fly error checking. It is always ready to help you shape your code, run unit-tests or provide visual debugging.

Przekładając na język Polski:

PHP Storm to lekkie i mądre IDE dla PHP koncentrujące się na produktywności i zrozumieniu pisanego kodu. Oferuje podpowiadanie składni, szybką nawigację i sprawdzenie w locie błędów składni. Umożliwia szybkie udostępnianie kodu, testowanie kodu i wizualne debugowanie.

W tym artylule postaram się sprawdzić ile jest w tym prawdy. Zapraszam do lektury.

Tworzenie nowego projektu w PHP Storm

Pierwszym krokiem zaraz po instalacji IDE, która przebiegła bezproblemowo, było stworzenie nowego projektu. Operacja ograniczyła się do wybrania katalogu z projektem i poczekania kilku sekund aż IDE za-indeksuje pliki. Już na tym etapie, byłem pod wrażeniem szybkości i łatwości tej operacji (w Eclipse stworzenie projektu wymagało skorzystania z wizzardu i kilku kliknięć dalej, lecz też nie można powiedzieć że było to skomplikowane ale na pewno indeksowanie plików jest bardziej czasochłonne).

Ciekawym elementem jest to że podczas indeksacji mogłem pracować w projekcie praktycznie bez przeszkód. Jedynymi ograniczeniami był brak możliwości podpowiadania składni i wyszukiwania (Naturalnie w Eclipse też można pracować w trakcie indeksacji jednak to bardziej przypomina szarpankę niż pracę – subiektywne odczucie)

Po zindeksowaniu projektu przez PHP Storm zużycie pamięci było o ~250 MB mniejsze niż w przypadku Eclipse. Eclipse na starcie projektu potrzebuje ok ~550MB. Jest to ogromny plus dla PHP Storm, tym bardziej że w trakcie kilku godzinnej pracy ta wartość wzrasta dla tych IDE o kolejne ~200MB.

Czytaj dalej tutaj (rozwija treść wpisu)
Czytaj dalej na blogu autora...

Autor wpisu: Load, dodany: 15.01.2012 00:31, tagi: php, zend_framework

Wstęp

Odpalimy naszą pierwszą aplikację i na jej podstawie powiem coś o strukturze katalogów, plikach i kodzie w nich zawartym – same podstawowe informacje o funkcjonowaniu Zenda. Na ich podstawie każdy powinien umieć uruchomić swoją pierwszą stronę opartą o Zend.

 Pobieramy Framweork

Pierwszą czynnością jaką musimy wykonać jest pobranie samego frameworka, możemy pobrać go tutaj, klikamy na wielki napis „Download New” i pobieramy interesującą nas paczkę, do wyboru mamy sam fw jak i z serverem lub dokumentacją. Jeśli nie chcemy żadnych dodatków klikamy na Zip lub tar.gz obok „Zend Framework 1.11.11 Minimal”, wersja oczywiście może się różnić od tej opisywanej tutaj. :-)

Co dalej?

W paczce znajdziemy kilka folderów i plików, najważniejszym jest katalog library zawiera on wszystkie biblioteki Zend’a i na dobrą sprawę wystarczył by nam do wszystkiego, ale po co utrudniać sobie życie? Wrócimy do niego w dalszej części, katalog bin zawiera plik zf.bat dzięki niemu możemy wykonywać pewne operacje na naszej aplikacji nie odpalając naszego ide. Proponuję całą zawartość katalogu bin wrzucić do C:\Windows dzięki czemu korzystając w przyszłości z niego nie będziemy zmuszeni podawać całej ścieżki do pliku a tylko nazwę pliku zf.

Server

Jak pewnie wiecie (a jeśli nie, to czas przeczytać pierwszy wpis) aplikacje php potrzebują servera, tutaj jest kilka możliwości:

  • Server w sieci
  • Server na naszym Pc
    • Gotowe rozwiązanie
    • Ręczna instalacja

Osobiście polecam w etapie produkcyjnym rozwiązanie drugie, nie jest istotne czy zainstalujecie całą paczkę ręcznie czy użyjecie jakiejś gotowej. Jeśli nie masz jeszcze servera powinieneś się w niego zaopatrzyć. W dalszym etapie będę opisywać poczynania na maszynie lokalnej – tak jest wygodniej i oszczędzamy na opóźnieniach ftp.

Gdy mamy już server

Otwieramy konsolę cmd, standardowo znajdujemy się C:\User\nazwa_użytkownika używając komendy cd .. wychodzimy katalog do góry, a wpisując ścieżkę cd C:\Users\nazwa_użytkownika\Desktop dostaniemy się na pulpit (Windows 7) dla xp będzie to inna ścieżka – krótkie przypomnienie dla osób nie korzystających na codzie z konsoli.

Teraz możemy stworzyć nasz pierwszy projekt, wydajemy polecenie zf create project nazwa_projektu, jeśli wcześniej nie wkleiłeś pliku zf.bat do katalogu C:/Windows musisz podać pełną ścieżkę do pliku zf.bat np. C:/katalog/zf create project nazwa_projektu lub wejść do niego za pomocą komendy cd. ;-)

W oknie cmd powinniśmy dostać komunikat z ścieżką do nowo stworzonego projektu w moim przypadku jest to C:\Users\nazwa_użytkownika\Desktop\nazwa_projektu. Najlepiej wykonywać te operacje od razu w katalogu www naszego servera tym samym zaoszczędzimy sobie przenoszenia plików.

Co zawiera magiczny katalog nazwa_projektu

Zawartość katalogu nazwa_projektu powinna wyglądać tak:

Czytaj dalej tutaj (rozwija treść wpisu)
Czytaj dalej na blogu autora...

Autor wpisu: Michal Wachowski, dodany: 11.01.2012 22:27, tagi: php

Było już o routingu. Tym razem, bez chwalenia się. Konkretny kod, konkretna funkcjonalność.

Autor wpisu: Śpiechu, dodany: 08.01.2012 16:59, tagi: php

Jakiś taki naukowy ten tytuł wyszedł. Ale inaczej się chyba nie da. Potrzebowałem pretekstu żeby się trochę pobawić w manipulowanie bitami. Padło na Unicode z racji fajnego sposobu, w jaki wymyślono sam zapis znaków. Jeśli jest jeszcze ktoś kto nie wie co to jest Unicode to zapraszam do źródła.

Wszystko zostało tak przemyślane, że im bardziej pokręcony język, tym więcej miejsca potrzeba na jego zapisanie. Wszystkie liczby i litery bez ogonków damy radę zapisać w postaci 1 bajta. Chodziło o kompatybilność z formatem ASCII. Znaczki języka polskiego znajdują się w dziale Latin Extended-A. Zapis znaków polskich zajmie 2 bajty w formacie UTF-8.

Mając numer znaku z tabeli Unicode najłatwiej wyświetlić go za pomocą wbudowanej w PHP funkcji html_entity_decode():

echo html_entity_decode('&#' . 0xA7 . ';', ENT_NOQUOTES, 'UTF-8');

Wywołanie powyższego wiersza spowoduje wyświetlenie znaku o kodzie 0xA7 — paragrafu §. W jaki więc sposób wykonuje się czary-mary i znak Unicode staje się znakiem UTF-8? Weźmy na warsztat znak ę opisany w tablicy jako latin small letter e with ogonek. Ma numer 0119 (heksadecymalnie!), czyli można zapisać tak: 0x11916 = 28110 = 1000110012 Z powyższego widać, że liczbę dziesiętną 281 możemy zapisać w postaci 9 bitów. Dokumentacja funkcji utf8_encode() zawiera tabelkę ile bitów znaku zmieścimy w ilu bajtach UTF-8. Wygląda na to, że w jednobajtowym zapisie zmieścimy znaki o numerach od 0 do 12710 (7 bitów). Za to dysponując 2 bajtami zapiszemy liczby aż do 204710, czyli w zupełności nam wystarczy.

Znak ę w UTF-8 zapisujemy w 2 bajtach, czyli do liczby 110000002 musimy dodać przesuniętą o 6 bitów w prawo liczbę 281 (ponieważ pójdą do drugiego bajtu znaku). Z drugiego wyrzucamy wszystko poza 6 ostatnimi bitami, a następnie dodajemy do liczby 100000002.

$uniChar = 0x119;
$byte1 = $uniChar >> 6 | 0xC0;
$byte2 = $uniChar & 0x3F | 0x80

Wyszło na to, że ę w zapisie UTF-8 to będzie 11000100 10011001. Po ubraniu tego wszystkiego w funkcję:

function hexToUTF8HexArray($hexNum)
{
   // konwertujemy na liczbe w razie czego
   if (is_string($hexNum)) $hexNum = hexdec($hexNum);
 
   $hexArray = array();
   if ($hexNum < 0x80) {
      $hexArray[0] = '0x' . dechex($hexNum);
      return $hexArray;
   } elseif ($hexNum < 0x800) {
      $hexArray[0] = '0x' . dechex($hexNum >> 6 | 0xC0);
      $hexArray[1] = '0x' . dechex($hexNum & 0x3F | 0x80);
      return $hexArray;
   } else {
      throw new Exception('Not supported');
   }
}

Wywołując hexToUTF8HexArray(0x119) da nam tablicę z wartościami 0xc4 i 0x99. No dobra, a co jak chcę odwrócić proces? Teraz będzie przyjemniej:

function utf8ToUnicode(array $utf8Array)
{
   // konwertujemy na liczby
   $utf8ArrayChecked = array();
   foreach ($utf8Array as $utf8) {
      if (is_string($utf8)) $utf8 = hexdec($utf8);
      $utf8ArrayChecked[] = $utf8;
   }
 
   $bytesCount = count($utf8ArrayChecked);
   switch ($bytesCount) {
      case 1:
         return $utf8ArrayChecked[0];
      case 2:
         // wyrzucamy naglowki
         $b1 = $utf8ArrayChecked[0] & 0x1F;
         $b2 = $utf8ArrayChecked[1] & 0x3F;
 
         // tutaj cala magia
         $number = $b1 << 6 | $b2;
         return '0x' . dechex($number);
      default:
         throw new Exception('Not supported'); 
   }
}

Wywołując utf8ToUnicode(array(0xc4, 0x99)) otrzymamy 0x119, czyli gra jak trzeba.

Na koniec ciekawostka: mając jakiś znak możemy łatwo wydobyć jego wartość UTF-8.

function charToUTF8HexArray($char)
{
   $i = 0;
   $hexArray = array();
   while (isset($char[$i])) {
      $hexArray[] = '0x' . dechex(ord($char[$i++]));
   }
   return $hexArray;
}

charToUTF8HexArray('ę') da nam tablicę 0xc4, 0x99.

Czytaj dalej tutaj (rozwija treść wpisu)
Czytaj dalej na blogu autora...

Autor wpisu: zleek, dodany: 07.01.2012 23:32, tagi: php, zend_framework

W jednym z poprzednich wpisów przedstawiałem instrukcję instalacji PHPUnit oraz Xdebug w naszym środowisku. Dzisiaj przedstawię sposób konfiguracji Zend Framework, aby możliwe było testowanie aplikacji. Po stworzeniu nowej aplikacji Zend Framework z wykorzystaniem Zend_Tool otrzymamy standardową strukturę poszczególnych elementów aplikacji, wśród których można między innymi znaleźć folder “tests”, który zawierał będzie elementy takie, jak na [...]

Autor wpisu: Load, dodany: 07.01.2012 21:39, tagi: php, framework, zend_framework

Wstęp

Dowiemy się co to takiego jest ten „Zend Framework”, gdzie można poczytać na jego temat, dla kogo jest kierowany i w czym może nam pomóc, wspomnę również o lekturach dla początkujących w które można lecz nie trzeba się zaopatrzyć.

Czym jest Zend Framework?

Zend jak każdy framework jest aplikacją, a w zasadzie tylko jej szkicem daje nam wiele możliwości i znacznie upraszcza pracę z kodem, choć na początku ogrom informacji w jaki musimy się zaopatrzyć może wskazywać na coś zupełnie innego. Zf daje nam wiele klas które możemy wykorzystać w naszych projektach od prostych operacji na bazie poprzez tworzenie i wyświetlanie plików pdf, aż do bibliotek obsługujących za nas całą robotę związaną z formularzami.

www.framework.zend.com

Główna strona projektu - Zend Framework możemy z niej pobrać aktualne wydanie fw (1.11.11) jak i wersję testowe (2.0.0beta1). Strona zapewnia nam obszerną dokumentację w kilku językach, niestety język polski był dostępny tylko do czasu i tylko w części, jego kopię można znaleźć na www.zend-framework.pl/manual. Tak jak pisałem jest częściowo przetłumaczona, dla osób nie znających j. angielskiego jest to jakieś wyjście. Tłumaczenie trwa jednak nadchodzący ZF2 różniący się dość sporo do swojego poprzednika zniechęca tłumaczy – szkoda ich pracy.

ZF dla każdego?

Nie, stanowczo nie! Jeśli nie znasz OOP lub podstaw php czas zacząć naukę – nie znając mechanizmów działania programowania obiektowego ciężko zabierać się za pracę z urządzeniem wyciskającym z niego ósme soki. W sieci znajduje się bardzo dużo kursów dla początkujących i średnio zaawansowanych – wystarczy poszukać. ;-) Jednak jak masz podstawy to możesz wystartować z tym potworem już po kilku godzinach, a Twój projekt będzie czymś więcej niż „Hello word”.

Zend przede wszystkim pokazuje nam jak powinien wyglądać przepływ informacji i dostarcza ogromną ilość gotowych modułów odwalających za nas brudną robotę, idealnym przykładem jest Zend_Form, za pomocą tej klasy możemy stworzyć formularz, dodać do niego odpowiednie ograniczenia i od tej pory wyświetlanie formularzu odbywa się poprzez wpisanie jednej linii kodu, gdy zostanie on wysłany zf sam sprawdzi wszystkie pola wedle kryterium podanego wcześniej i w razie potrzeby wygeneruje odpowiedni błąd. Tworzenie takiego formularza ogranicza się tak na prawdę do stworzenia klasy, a w jej ciele użycie kilku funkcji – ciężko to opisać bez przykładów a nie chcę mieszać już na starcie. ;-)

Książki o Zf

Na rynku w języku polskim jest niewiele papirusów które tak na prawdę mogą się nam przydać, jedynym wartym polecenia i w miarę aktualnym jest „Zend Framework od podstaw” Włodzimierza Gajdy ~530 stron tylko o Zend’zie za 89zł, Helion często daje rabaty wystarczy codziennie sprawdzać tutaj.

Podsumowanie

Suche informacje, bez kodu by nie wprowadzać zamieszania, warto przeczytać by mieć jakiś pogląd na sytuację i nie podbijać słońca z pióropuszem na głowie.

Autor wpisu: zleek, dodany: 01.01.2012 20:51, tagi: php, zend_framework

Tworząc formularze z użyciem Zend_Form mamy możliwość grupowania pól w różne obszary – fieldset. Jak zapewne wiecie, dla każdego obszaru mamy możliwość ustawienia etykiety. W kodzie html wygląda to następująco: Aby uzyskać efekt grupowania w formularzu, jego kod będzie wyglądał następująco: W linii 14 powyższego kodu dla instancji obiektu Zend_Form wywołujemy metodę “addDisplayGroup”, która nam [...]
Wszystkie wpisy należą do ich twórców. PHP.pl nie ponosi odpowiedzialności za treść wpisów.