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

Autor wpisu: batman, dodany: 11.08.2011 10:00, tagi: php

PHPFog jest chmurą dedykowaną dla PHP, oferującą możliwość bezproblemowego wdrażania i utrzymywania aplikacji. Do dyspozycji otrzymujemy predefiniowane konfiguracje dla frameworków takich jak Zend Framework, Kohana, CakePHP oraz aplikacji typu WordPress, Drupal czy Joomla. Jedyną wadą PHPFog jest jego cena, która zaczyna się od 29 dolarów miesięcznie. W cenę wliczony jest hosting aplikacji, bazy danych 100GB na transfer danych, repozytorium Git, współdzielony SSL oraz domeny typu wildcard.

Firma stojąca za PHPFog – AppFog – otrzymała dofinansowanie w wysokości 8 milionów dolarów na dalszy rozwój chmury. Pieniądze zostaną przeznaczone na poszerzenie listy obsługiwanych frameworków oraz aplikacji. Co więcej, AppFog planuje stworzenie chmury obsługującej takie technologie jak Node.js, Ruby, Python, Java oraz .NET.

Pozostaje mieć nadzieję, iż dofinansowanie pozwoli obniżyć koszt utrzymywania aplikacji w chmurze. Obecnie jedynie cena powstrzymuje indywidualnych użytkowników przed korzystaniem z chmury na większą skalę.

źródło: gigaom.com

Autor wpisu: batman, dodany: 10.08.2011 08:00, tagi: php

Nginx jest lekkim serwerem przeznaczonym do serwowania statycznych plików. Nic nie stoi na przeszkodzie, aby uruchomić na nim PHP. Co więcej, w przypadku Windowsa możemy niewielkim nakładem pracy, przygotować przenośny serwer działający nawet z pendrive’a. I co najważniejsze – nie musimy nic instalować.

Zaczniemy od pobrania Nginx, ze strony http://nginx.org/en/download.html (ściągamy najnowszą stabilną wersję dla Windowsa). Następnie pobieramy PHP w postaci archiwum ZIP – http://windows.php.net/download/. Serwer oraz PHP rozpakowujemy do katalogów nginx i php, które wcześniej utworzyliśmy w dowolnym miejscu (nawet na pendrivie).

Następnie w pliku nginx.conf, znajdującym się w katalogu nginx/conf, wyszukujemy zakomentowany blok rozpoczynający się od location ~ \.php$ { i go usuwany. W jego miejsce powinien trafić następujący kod:

location ~ \.php$ {
	include fastcgi.conf;
	fastcgi_pass  127.0.0.1:9000;
}

I już. Serwer mamy skonfigurowany i gotowy do działania. Jedyne co musimy teraz zrobić, to uruchomić PHP by nasłuchiwało połączeń przez CGI (polecenie wydajemy w katalogu php)

php-cgi -b 127.0.0.1:9000

oraz uruchomić serwer (polecenie wykonujemy w katalogu nginx)

nginx

Teraz możemy utworzyć w katalogu nginx/html plik, np index.php, dodać do niego funkcję phpinfo() i uruchomić wpisując w przeglądarce adres http://localhost/index.php.

Autor wpisu: Śpiechu, dodany: 09.08.2011 23:25, tagi: php

W dzisiejszym odcinku weźmie udział „najwspanialszy z kiedykolwiek stworzonych silnik do walidacji danych w PHP” — Validation. Projekt rozwija groźnie brzmiąca grupa programistów o nazwie Respect z Brazylii. Mam nadzieję, że po tym wpisie nie wyląduję w lesie wyciągnięty z bagażnika jakiegoś starego Mercedesa…

Projekt spełnia normy, które są oczywiste przy czytaniu kodu takich gigantów jak Zend Framework 2 czy Symfony, a więc używanie namespaces, drzewiasta struktura klas i katalogów, kompatybilność ze standardowym autoloaderem klas SplClassLoader, własne rozszerzenia wyjątków. Jedyny zgrzyt to poziom dokumentacji. Automat raczej nie da rady w pełni wygenerować typów parametrów metod i zwracanych wartości. W nagrodę za to dostępnych jest dziesiątki testów jednostkowych. Co jak co, ale walidator sprawdzający czyjeś dane sam powinien być gruntownie sprawdzony ;-)

Powszechnie wiadomo, że w PHP nie można użyć konstrukcji typu

new Obiekt()->metoda();

Zamiast tego można stosować metody statyczne, które w rezultacie zwrócą nam obiekt lub też można zastosować tak lubianego przez was Harrego Pottera. Twórcy biblioteki czarują często i gęsto.

Autorzy Validation proponują używanie w następujący sposób:

// deklarujemy uzywany namespace i robimy alias do klasy Validator
use Respect\Validation\Validator as v;
 
// mozemy albo najpierw przygotowac obiekt walidatora
$walidator = v::string()->between('a', 'c');
 
// albo tez bezposrednio uzywac w instrukcjach warunkowych, np.
if (v::numeric()->positive()->validate($cos)) echo 'prawda';
 
//i potem uzywac do sprawdzania jednej z trzech metod:
 
// zwroci tylko true albo false
$walidator->validate($cos);
 
// wypluje wyjatek z pierwszym bledem
$walidator->check($cos);
 
// wypluje wyjatek ze wszystkimi bledami
$walidator->assert($cos);

Warunków, które możemy sprawdzać jest kilkadziesiąt. Można popatrzeć po plikach. Z ciekawszych to wymieniony wyżej

between()

dla zakresu znaków,

in(array('wartosc1' , 'wartosc2))

dla dozwolonych wartości oraz konstrukcja

v::each(v::warunek())->validate(array('wartosc1','wartosc2'));

dla sprawdzenia wszystkich wartości w tablicy. Ponadto można tworzyć kompozyty różnych warunków za pomocą

v::allOf($walidator1,$walidator2);

(jeżeli wszystkie muszą przejść) oraz

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

Autor wpisu: Tomasz Kowalczyk, dodany: 09.08.2011 23:24, tagi: php

Każdy z nas traktuje język HTML jako proste oraz dobrze znane narzędzie. Okazuje się, że i on kryje jednak interesujące zakamarki, które mogą zaciekawić potencjalnego programistę stron internetowych. O ile nie są to jakieś krytyczne dla działania strony kwestie, o tyle czasem można wykorzystać te informacje do stworzenia jeszcze bardziej ambitnych rozwiązań. W dzisiejszym wpisie [...]

Autor wpisu: singles, dodany: 09.08.2011 20:26, tagi: php, zend_framework

W dzisiejszym odcinku cyklu ZendFramework Quick Tip zajmiemy się wyjaśnieniem fenomenu parametrów, które „biorą się znikąd” podczas korzystania z helpera url.

Wprowadzenie

Jak większość frameworków, ZF udostępnia helpery pomocnicze dla widoków. Jednym z takich helperów jest Zend_View_Helper_Url, który służy do tworzenia adresu URL w ramach naszej aplikacji na bazie przekazanych parametrów. Warto z niego korzystać, ponieważ rozwiązuje problem prawidłowej ścieżki bazowej, kiedy nie używamy vhostów i nasza aplikacja umieszczona jest np. w katalogu http://example.com/some/folder/public/ Przykładowe wywołanie:

<?php
 
// application/views/scripts/foo.phtml
$this->url(array('controller' => 'foo', 'action' => 'bar', 'additional_param' => 123));
 
?>

wygeneruje adres: http://example.com/foo/bar/additional_param/123/

Jednakże, kiedy z poziomu www. strony spróbujemy wygenerować inny adres, np. tylko do kontrolera odpowiedzialnego za zarządzanie użytkownikami:

<?php
$this->url(array('controller' => 'users'))
?>

zamiast adresu http://example.com/users otrzymamy http://example.com/users/bar/additional_param/123/

Ale dlaczego?

Otóż to, aby zrozumieć działanie wystarczy spojrzeć na implementację helpera:

class Zend_View_Helper_Url extends Zend_View_Helper_Abstract
{
    public function url(array $urlOptions = array(), $name = null, $reset = false, $encode = true)
    {
        $router = Zend_Controller_Front::getInstance()->getRouter();
        return $router->assemble($urlOptions, $name, $reset, $encode);
    }
}

Pomijając pobieranie obiektu routera z kosmosu, najważniejsze są dla nas parametry, a konkretniej trzeci z nich: $reset. Odpowiada on za zresetowanie obecnie ustawionych parametrów ścieżki. Jak widać, jego domyślną wartością jest false – i to jest powód, dla którego w przedstawionym wcześniej przykładzie otrzymaliśmy dodatkowe parametry.

Rozwiązanie

Jak łatwo się domyślić, rozwiązanie jest bardzo proste – wywołanie powinno wyglądać tak:

$this->url(array('controller' => 'users'), null, true);

Oczywiście, pisanie wielu takich wywołań może być dla niektórych niewygodne. Dlatego możemy albo napisać własny helper, gdzie domyślnie ustawimy parametr na true.

Innym rozwiązaniem może być stworzenie helpera Zend_View_Helper_Url i umieszczenie go w pliku APPLICATION_PATH . /views/helpers/Url.php:

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

Autor wpisu: Wojciech Sznapka, dodany: 07.08.2011 19:29, tagi: php, symfony, symfony2

On July 28th Symfony2 was finally released, with launch parties all over the world. Developers are excited, managers are excited and whole echosystem is happy. They’re right, there are plenty of reasons to be optimistic. symfony 1.x is a great framework, I made many  projects with it, nevertheless Symfony2 is a new way of doing [...]

Autor wpisu: Michal Wachowski, dodany: 06.08.2011 01:13, tagi: javascript, php

Własne projekty to fajna rzecz, można robić kiedy się chce, ile się chce i jak się chce. Czasem coś z tego wychodzi. To jeden z takich projektów.
Wszystkie wpisy należą do ich twórców. PHP.pl nie ponosi odpowiedzialności za treść wpisów.