Autor wpisu: Marek, dodany: 04.04.2012 18:29, tagi: php
Pewnie niewielu z nas będzie pracować w jednej firmie do 67 roku życia. Czasy, w których pracownik był związany z przedsiębiorstwem przez 25 lat powoli odchodzą w niepamięć. Co zrobić gdy nagle z firmy odchodzi pracownik, który miał mnóstwo kont w różnego rodzaju dedykowanych systemach CMS, odbierał maile wysyłane z formularzy zamieszczonych na stronach WWW itp.? Pocztę byłego pracownika można przekierować na innego, ale trzeba również posprzątać w serwisach www. Rzeczywistość na ogół nie jest różowa – serwisy pisane są w różnych frameworkach, niektóre mają już swoje lata, adresy e-mail moderatorów wpisane są w wielu plikach konfiguracyjnych.
To jak znaleźć wszystkie wpisy dotyczące nieaktywnego konta e-mail i zamienić je poprawnym adresem?
Założenia:
- odszedł od nas pracownik o mailu michael.jordan@test.pl
- chcemy przepisać wszystkie namiary na jego pocztę na innego pracownika: marcin.gortat@test.pl
- dla uproszczenia wszystkie serwisy znajdują się w katalogu: /var/www/
Najpierw wyszukajmy wszystkich wystąpień adresu e-mail naszego byłego pracownika:
grep -r 'michael.jordan@test.pl' /var/www/ 2> /dev/null
Przykładowy wynik:
/var/www/abc/config/test.php:$config['e-mail'] = 'michael.jordan@test.pl'; /var/www/a/b/c/plik.php:$config['moderators'] = 'michael.jordan@test.pl,kobe.bryant@test.pl';
Jak widać powyżej, znaleźliśmy wpisy z poszukiwanym adresem e-mail. Polecenie grep -r wyświetla najpierw ścieżkę do pliku, potem znak dwukropka i po nim wiersz ze znalezioną frazą.
Teraz przejdźmy do sedna i zmieńmy wszystkie wystąpienia michael.jordan@test.pl na marcin.gortat@test.pl:
grep -r 'michael.jordan@test.pl' /var/www/ 2> /dev/null \ | cut -d ':' -f 1 \ | xargs sed -i 's/michael.jordan@test.pl/marcin.gortat@test.pl/g'
Krótkie wyjaśnienie:
- w pierwszej linii wyszukujemy rekurencyjnie wystąpienia michael.jordan@test.pl w katalogu /var/www/ a wszelkie komunikaty o błędach wysyłamy w czarną dziurę
- z otrzymanego wyniku wyciągamy jedynie nazwy plików używając jako separatora kolumn znaku ‘:’
- taki wynik podajemy jako argument dla polecenia sed, za pomocą którego dokonujemy właściwej zamiany ciągów znaków
I to tyle – tymi prostymi poleceniami zamieniliśmy w plikach danej lokalizacji wszystkie wystąpienia niechcianego adresu pożądanym.
Autor wpisu: d3ut3r, dodany: 04.04.2012 03:45, tagi: zend_framework, php
Dziś chciałbym przedstawić Wam w jaki sposób tworzyć kontrolery i akcje w Zend Framework zanim jednak zaczniemy potrzeba nieco teorii o tym co to jest kontroler i akcja tak więc zapraszam do czytania.
1. Czym są kontorlery
Najprościej mówiąc kontroler to część aplikacji której zadaniem jest odebranie danych od użytkownika oraz ich analiza.
2. Czym są akcje
Akcja to część składowa kontrolera, każdy kontroler w ZF powinien posiadać przynajmniej 1 akcję która nazywa się indexAction jest ona wywoływana jako akcja domyślna.
To tyle jeżeli chodzi o teorie oczywiście czytając to pierwszy raz możesz czuć się nieco zagubiony, mam jednak nadzieję że pod koniec wpisu wszystko będzie już jasne. W poprzednim wpisie “Zend Framework pierwsze starcie” pokazałem w jaki sposób wygenerować projekt o nazwie helloZend dziś dalej będziemy pracować na tym projekcie.
Ostatnim krokiem przed pracą z kodem będzie skonfigurowanie naszego projektu do pracy w trybie development co pozwoli nam w czytelny sposób śledzić ewentualne błędy w kodzie. Rozpoczynamy od edycji pliku .htaccess z katalogu public naszego projektu. Po otwarciu pliku w pierwszej linii wpisujemy:
SetEnv APPLICATION_ENV development
Skoro wprowadziliśmy już wszystkie wymagane zmiany, mniej więcej wiemy co to kontroler a co akcja pora przejść do praktyki. Zaczniemy od pewnego faktu dotyczącego poprzedniego projektu helloZend otóż linki:
- http://localhost/helloZend/public/
- http://localhost/helloZend/public/index
- http://localhost/helloZend/public/index/index
robią dokładnie to samo. W przypadku 1 linku nie podajemy żadnych parametrów zatem system wywołuje domyślny kontroler (index) oraz domyślną akcję (index). Link drugi określa kontroler którego chcemy użyć (w naszym przypadku index) oraz sam dobiera domyślną akcję. Link trzeci jest pełnym linkiem i określa on zarówno kontroler jak i akcję. Możemy zatem powiedzieć, że ogólny schemat linków dla projektów ZF wygląda tak: http://example.com/kontroler/akcja
3. Tworzenie kontrolerów
Kontrolery naszej aplikacji przechowywane są w katalogu application/controllers domyślnie są tam 2 pliki: IndexController.php oraz ErrorController.php możemy dodawać nowe kontrolery do naszej aplikacji wydając komendę:
zf create controller nazwa_kontrolera domyslna_akcja moduł
- nazwa_kontrolera – raczej nie trzeba tłumaczyć ważne aby nazwa była intuicyjna i odzwierciedlała to czym kontroler będzie się zajmował, jeżeli np tworzymy kontroler dla newsów nazwijmy go news
- domyslna_akcja – parametr ten ma domyślną wartość 1 i określa czy wraz z utworzeniem nowego kontrolera chcemy aby system wygenerował domyślną akcję index
- moduł – parametr określa moduł do którego należeć będzie kontroler.
Czas przejść do czynów, do naszego projektu helloZend dodamy kontroler który nazwiemy pierwszy w tym celu będąc w katalogu projektu wydajemy polecenie:
zf create controller pierwszy
dzięki temu w katalogu controllers naszej aplikacji pojawił się plik o nazwie PierwszyController.php jeżeli otworzymy wspomniany plik zobaczymy, że skrypt wygenerował dla nas całą strukturę łącznie z akcją index(metoda o nazwie indexAction).