Autor wpisu: Zyx, dodany: 25.11.2010 09:18, tagi: php
Autor wpisu: Daniel Burchardtt, dodany: 24.11.2010 22:09, tagi: php
Najprostszym sposobem na wygenerowanie unikalnego ciągu znaków składającego się z liter i liczb jest użycie funkcji haszującej w której jako parametr zostanie podany unikalny parametr.
Parametr
W naszym przykładzie do wygenerowanie unikalnego parametru użyjemy funkcji date() oraz rand(), dzięki którym otrzymamy za każdym razem inny ciąg do zakodowania.
$param = rand(1,1000000).date("d-m/Y:H:i.s");
SHA256
Jako algorytmu do wygenerowania losowego ciągu zastosujemy kodowanie sha256, przy pomocy funkcji hash().
function generatePassword($limit) { return substr(hash('sha256', rand().time()) , 0 , $limit); }
Dzięki zastosowaniu funkcji substr() możemy wygenerować hasło o podanej długości, jednak nie dłuższe niż 64 znaki. Jest tak dlatego, ponieważ hash generowany przez sha256 ma długość 64 znaków.
Autor wpisu: batman, dodany: 24.11.2010 08:00, tagi: php
Przed miesiącem rozpocząłem cykl zatytułowany ASP.NET MVC dla programistów PHP. Niestety nie udało mi się publikować co tydzień kolejnych części tej serii, czego bardzo żałuję. Od dzisiejszego wpisu postaram się zintensyfikować wysiłki, aby seria pojawiała się częściej. Zgodnie z zapowiedzią z poprzedniej części, zajmiemy się dzisiaj aplikacją ASP.NET MVC od zera. Pozwoli to nam na wstępne zapoznanie się ze strukturą katalogów oraz konwencjami stosowanymi w tej technologii. Zajmiemy się również kontrolerami.
Nowy projekt
Pracę rozpoczniemy od utworzenia nowego projektu. Z menu File należy wybrać opcję New Project, a następnie w zakładce Web kliknąć na ASP.NET MVC 2 Empty Web Application.
Nazwę oraz lokalizację projektu pozostawiamy bez zmian. Tak przygotowana aplikacja jest tylko pustym szkieletem, złożonym z kilku katalogów. Próba jej uruchomienia zakończy się niepowodzeniem.
Dodajemy kontroler…
Aby powołać naszą aplikację do życia, musimy stworzyć co najmniej jeden kontroler, który obsłuży request, wykona magię z modelem (nie jest to konieczne), a na koniec wskaże widok, który zostanie zwrócony klientowi. W przeciwieństwie do znanych frameworków PHP, nie musimy się bawić w ręczne dodawanie kontrolera. Co więcej, nie musimy korzystać z żadnych poleceń w konsoli. Wszystko możemy wyklikać w Visual Studio. Wystarczy kliknąć prawym przyciskiem myszy w na katalogu Controllers i wybrać z menu kontekstowego opcję Add –> Controller.
Nazwijmy nowy kontroler Home (dlaczego akurat Home, za chwilę wyjaśnię). Zwróćcie uwagę, że podobnie jak w przypadku Zend Frameworka do nazwy kontrolera należy dodać przyrostek Controller. Checkbox zostawmy na razie w spokoju.
Autor wpisu: Wojciech Sznapka, dodany: 23.11.2010 22:58, tagi: php
Autor wpisu: sokzzuka, dodany: 23.11.2010 09:59, tagi: php
Felipe Pena, jeden z najaktywniejszych deweloperów PHP wraz z całym szeregiem innych prominentnych uczestników projektu ogłosił RFC – propozycje zmian w cyklu wydawniczym interpretera. Jak dotąd, wszelkie nowe wydania powstawały spontanicznie. Po prostu po zakumulowaniu się jakiejś masy krytycznej nowych rzeczy w repozytorium, ktoś wyskakiwał jak to „Filip z konopi indyjskich” i mówił, że robimy nowego releasa. Skutkowało to tym, że nikt nigdy nie wiedział, kiedy wyjdzie nowa wersja interpretera. Przez to też między innymi tak wolno nowe wersje dostają się na hostingi, czy do stabilnych wydań Debiana. Nie ma też żadnej ścieżki, dzięki której, można by informować o zmianach we wstecznej kompatybilności, przez co bardzo wiele czasu zajmuje usunięcie jakiś śmieci z poprzednich wersji (magic_quotes etc).
RFC proponuje:
- cykliczny okres wydawniczy
- demokratyczny proces podejmowania decyzji, wszelkie zmiany wprowadzane będą poprzez RFC, a decyzja podejmowana poprzez anonimowe głosowanie
- typ zmian, jakie mogą być wprowadzane w poszczególnych rodzajach wydań
- demokratyczny proces wybierania menedżerów wydań dla danego wydania
- efektywniejsze użycie bugs.php.net do śledzenia zmian i błędów
- skrócony czas między wydaniami poprawiającymi błędy
- skrócony czas wprowadzania nowych rzeczy do języka
- brak zrywania kompatybilności wstecznej dla wydań poprawiających błędy
- wydania podglądowe, mające na celu przedstawienie jakiejś funkcjonalności szerszej publice
Więcej szczegółów znajdziecie w RFC, natomiast chciałem jeszcze pokrótce omówić rodzaje wydań.
- Wydania serwisowe – zmiana numerów wersji wg porządku x.y.z -> x.y.z+1 – tylko poprawki błędów, konieczność zachowania kompatybilności wstecznej, nie można usuwać rozszerzeń
- Małe wydania – x.y.z -> x.y+1.z – poprawki błędów, nowe cechy języka, można usuwać rozszerzenia, konieczność zachowania kompatybilności wstecznej
- Duże wydania – x.y.z -> x+1,y,z – wszystko to samo co w przypadku małych wydań z tą różnicą, że można zerwać kompatybilność wsteczną
Osobiście uważam, że ta propozycja to świetny pomysł. Na pewno przyśpieszy wydawanie nowych wersji, które dzięki przewidywalności daty pojawienia się będą szybciej adoptowane przez hostingi.
Autor wpisu: batman, dodany: 23.11.2010 09:07, tagi: css
Przeglądając nieprzebrane zasoby Internetu, można czasem natrafić na prawdziwą perłę. Taką właśnie perłą jest zestaw ikon, które powstały tylko i wyłącznie przy pomocy CSS. Co ciekawe, kod HTML jest niezwykle prosty, a cała sztuczka polega na wykorzystaniu pseudoelementów. Całość prezentuje się imponująco.
Niestety muszę ostudzić wasz zapał. O ile wszystkie normalne przeglądarki (Firefox 3.5+, Safari 5+, Chrome 5+, Opera 10.6+) poprawnie wyświetlają powyższe ikonki, tak IE (nawet w wersji 9) sobie z nimi nie radzi.
Zachęcam do obejrzenia dema oraz odwiedzenia bloga autora, gdzie znajdziecie przykładowy kod.