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

Autor wpisu: Zyx, dodany: 05.09.2007 10:02, tagi: php

W poprzednim wpisie porównywaliśmy szybkość odczytu różnych formatów danych dostępnych w PHP, a także ich możliwości. Ponieważ jednak po jego opublikowaniu pojawiły się nowe pytania, zdecydowałem się napisać kontynuację, w której postaram się je wyjaśnić. Przyjrzymy się kompilowanemu rozszerzeniu Syck do parsowania YAML w PHP, które znalazłem w repozytorium PECL - jednak więc takie coś istnieje, tyle że w wersji beta, a wyszukiwarka niestety nie pomaga w jego znalezieniu, jeśli nie zna się tej nazwy. Ponadto porównamy szybkość SimpleXML oraz DOM. Procedura testowa pozostaje ta sama.

Autor wpisu: Zyx, dodany: 04.09.2007 13:04, tagi: php

Napisałem już trochę kilobajtów kodu nowego silnika, lecz wciąż nie zdecydowałem się na jeden, konkretny format przechowywania konfiguracji oraz plików informacyjnych. Podstawowe pytania to: jakich możliwości od danego formatu oczekuję oraz jak przedstawia się sprawa wydajności. Dlatego postanowiłem zrobić mały benchmark i uszeregować wszystkie formaty, jakie zdołałem do czasu napisania wpisu wymyślić w kolejności od najszybszego do najwolniejszego. W szranki stanęły: zserializowane tablice, same skrypty PHP, pliki INI, XML oraz YAML. Pierwsze cztery obsługiwane są "sprzętowo" przez interpreter, w ostatnim przypadku trzeba zadowolić się napisanym w PHP parserem Spyc.

Autor wpisu: Athlan, dodany: 28.08.2007 23:28, tagi: internet, php

Na potrzeby pewnego projektu o pewnej nazwie, o której niebawem się przekonacie, powstał nowy plugin. Generuje on sitemapa przyjaznego dla Google. Po co to wszystko... Rejestrując się w google mamy możliwość skorzystać z wielu narzędzi webmastera. Jednym z nich jest "pomaganie" robotowi w indeksowaniu naszej strony, poprzez podanie mu sitemapu po którym powinien się poruszać. Po zweryfikowaniu naszej strony w systemie google, proszeni jesteśmy o podanie sitemapu (więcej o weryfikacji).

W tym miejscu z pomocą przychodzi nam Wordpress ContexlinkSitemap Plugin. Plugin przede wszystkim:

  • tworzy mapę witryny uwzględniając wszystkie notki i podstrony na blogu oznaczone jako "published",
  • uwzględnia strukturę permalinków, URL'i przyjaznych dla wyszukiwarek sprecyzowanych w konfiguracji bloga
  • datę ostatnich zmian na stronie głównej oraz w każdym linku z osobna
  • dostosowany do mapy google: https://www.google.com/webmasters/tools/docs/pl/protocol.html
  • jest bezpłatny : -)

Instalacja pluginu:

  1. Pobierz paczkę pluginu stąd (format ZIP)
  2. Folder ContextlinkSitemap skopiuj do folderu wp-content/plugins/
  3. Plik sitemap.xml skopiuj do folderu głównego bloga i nadaj mu chmod 777
  4. Aktywuj plugin w zakładce Plugins wpanelu administracyjnym bloga

Dodanie mapy witryny do google:

  1. Zaloguj się na google.com na swoje Google Account lub Gmail Account.
  2. W nagłówku strony głównej google.com przejdź w sekcję "Moje konto"
  3. Z listy "Moje usługi" wybierz pozycję "Narzędzia dla webmasterów"
  4. Dodaj swoją stronę.
  5. Wybierz formę weryfikacji strony i postępuj ze wskazówkami google
  6. Gdy strona pojawi się w tabeli oraz jej status zostanie oznaczony jako "zweryfikowana", kliknij w opcję "Dodaj mapę" i podaj adres URL mapy strony (defaultowo http://twojblog.pl/sitemap.xml, czyli tam, gdzie wrzuciłeś plik).

Dodatkowa konfiguracja:

W celu szczegółowej konfiguracji pluginu, możesz:

  • zmienić ścieżkę mapy w stałej CONTEXLINK_MAP_FILE
  • zmienić częstotliwość automatycznej aktualizacji mapy w stałej CONTEXLINK_MAP_UPDATE, wartość podawana w sekundach, defaultowo co 2 dni: 3600 * 24 * 2.
  • zmienić miejsce wykonywania aktualizacji, zwykle jest to przy ładowaniu sekcji head na blogu. Aby dokonać zmian, należy zmienić miejsce akcji: add_action('wp_head', 'ContexlinkSitemapAutogenerate'); Pełną listę miejsc, w których można wykonać operację możesz znaleźć tutaj: http://codex.wordpress.org/Plugin_API/Action_Reference

Autor wpisu: Zyx, dodany: 22.08.2007 19:45, tagi: php

Nauczony doświadczeniami ostatniego projektu postanowiłem wprowadzić do moich skryptów większą modularność. Sam MVC, choć zapewnia dość dobre ponowne wykorzystanie kodu, nie jest jeszcze ideałem. Akcje w kontrolerach muszą przecież zapewnić czasem przepływ i obsłużenie tak dużej liczby sytuacji, że same w sobie stają się skomplikowane, a gdy bardzo podobne zadanie przyjdzie zaimplementować w innym miejscu serwisu, kod staje się bardzo nieprzyjemny w zarządzaniu.

Autor wpisu: Athlan, dodany: 21.08.2007 13:01, tagi: php

Ostatnio napotkałem problem z tasowaniem tablic, który dość sprawnie rozwiązałem. Publikując notkę oraz sposób wybrnięcia z tego problemu zapewne komuś pomoże.

Tablicę możemy tasować, tzn losowo ustawić jej wartości. Do tej operacji potrzebujemy funkcji shuffle() o której mowa w manualu. Spójrzmy jednak na notatkę:

Notatka: Ta funkcja przypisuje nowe klucze dla elementów argumentu tablica. Wszystkie istniejące klucze zostaną usunięte.

Nieciekawie prawda? W moim przypadku klucze tablicy były bardzo potrzebne, bowiem zawierały istotne informacje potrzebne do działania aplikacji. Doszedłem do wniosku, że jest możliwe zachowanie kluczy, trzeba tylko rozpisać sobie nową funkcję, która ma za zadanie:

  • Stworzyć kopię tasowanej tablicy.
  • Operując na kopii przetworzyć ją tak, aby nowa tablica zawierała tylko klucze, naturalnie je przypisując operatorem []
  • Tasować nowopowstałą tablicę kluczy.
  • Do potasowanej tablicy kluczy przypisać wartości szukając po kluczach w oryginalnej tablicy.

Działania proste. Spróbujmy stworzyć z powyższych punktów zlepek kodu:

PLAIN TEXT PHP:
  1. function array_shuffle(array $aArray)
  2. {
  3. $aArrayShuffle = array();
  4.  
  5. foreach($aArray as $mKey => $mValue)
  6. $aArrayShuffle[] = $mKey;
  7.  
  8. shuffle($aArrayShuffle);
  9.  
  10. $aResult = array();
  11.  
  12. foreach($aArrayShuffle as $sKey)
  13. $aResult[$sKey] = $aArray[$sKey];
  14.  
  15. return $aResult;
  16. }

Małe testy: http://phpfi.com/257646

Autor wpisu: stormfly, dodany: 11.08.2007 12:35, tagi: php

Jak obiecywałem jakiś czas temu, wracam do tematu procedur składowanych. Wyzwalacze (ang. triggers), bo o nich będzie mowa, stanowią bardzo wygodny mechanizm, który odciąża naszą aplikację od dodatkowych implementacji. Przykład, który wybrałem, aby zobrazować działanie wyzwalacza to...

Autor wpisu: Zyx, dodany: 01.08.2007 21:15, tagi: php

Jest to koniec pewnej epoki dla mnie - odchodzę z redakcji WebCity.pl, a w zasadzie odszedłem już pod koniec maja, tyle że nie ogłaszałem tego oficjalnie. Wszystko skończyło się w przykrych okolicznościach, a mianowicie kłótni o kod źródłowy mojego autorstwa, który został bestialsko potraktowany "niby na lepsze", a w rzeczywistości na gorsze + z błędami, i to bez mojej wiedzy. Ten zespół redakcyjny po prostu nie miał już szans na dalsze istnienie.
Wszystkie wpisy należą do ich twórców. PHP.pl nie ponosi odpowiedzialności za treść wpisów.