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

Autor wpisu: Zyx, dodany: 14.02.2008 12:54, tagi: php

Pod koniec zeszłego roku montowałem sobie silnik w PHP, lecz prace nad nim wstrzymałem z powodu OPT. Postanowiłem go wczoraj uruchomić na nowopostawionym FastCGI ot tak, żeby sprawdzić, jak się trzyma. Okazało się, że kod się niesamowicie sypał. Nie działało wykrywanie środowiska pracy, translacja adresów w routerze oraz kilka innych rzeczy. Szybki rzut oka wystarczył, by zorientować się, że "awaria" dotknęła wszystkich komponentów, które opierały swoje działanie na dostarczonych z serwera danych o żądaniu.

Autor wpisu: Zyx, dodany: 12.02.2008 09:43, tagi: php

Z powodu porządków na stanowiskach pracy postanowiłem dla próby zainstalować sobie Lighttpd zamiast Apache'a. Z serwerem tym miałem już wcześniej do czynienia podczas stawiania serwera, lecz z powodu braku niektórych możliwości musiałem wtedy z niego zrezygnować. Natomiast na domowy komputer - czemu nie, tym bardziej że pamiętałem łatwość, z jaką uruchamia się na nim FastCGI.

Autor wpisu: Zyx, dodany: 05.02.2008 21:07, tagi: php

Nie cierpię używać gotowych skryptów innych, niż biblioteki, wszędzie tam, gdzie potrzebuję dwujęzycznej strony WWW. Niemal całe tego typu oprogramowanie jest napisane przez Anglosasów, a oni z racji, że ich język ma dominującą pozycję w Internecie, mają o tym ZEROWE pojęcie. W sumie nie dziwię im się - jak robią jakiś projekt, wystarczy, że zrobią stronę po angielsku i już mają ustrzelony zarówno rynek krajowy, jak i narodowy. A tymczasem co ma w tej sytuacji zrobić Polak?

Autor wpisu: stormfly, dodany: 04.02.2008 10:49, tagi: php

Cztery miesiące temu umieściłem opis o instalacji oprogramowania w PHP. W komentarzach pojawiło się wiele problemów, które uniemożliwiały zainstalowanie PDT dla Eclipse. Tak się złożyło, że po usunięciu katalogu ~/.eclipse musiałem od nowa zainstalować wszystkie rozszerzenia i...

Autor wpisu: Splatch, dodany: 20.01.2008 22:55, tagi: php

Parę dni wstecz trafiłem na ciekawe rozszerzenie Reflection API do PHP. Umożliwia ono używanie tagów phpdoc w charakterze adnotacji. Rozwiązanie te jest zbliżone do znanego mi z Javy xdocleta. Drobną, aczkolwiek zauważalną, różnicą jest fakt, że xdoclet był odpalany przed kompilacją kodu ponieważ bytecode nie zawierał adnotacji. Oczywiście po wejściu Javy 5 xdoclet podupadł, jako coś co wyparły właśnie adnotacje. Może dla tych, którzy nie mieli okazji spotkania sie z takim rozwiązaniem drobny przykład kodu w Javie:

PLAIN TEXT JAVA:
  1. package pl.dywicki.swe.domain;
  2.  
  3. import javax.persistence.Column;
  4. import javax.persistence.Entity;
  5. import javax.persistence.GeneratedValue;
  6. import javax.persistence.GenerationType;
  7. import javax.persistence.Id;
  8. import javax.persistence.Table;
  9.  
  10. @ Entity(name = "user")
  11. @Table(name = "user", schema = "public")
  12. public class User {
  13.  
  14.     @Id
  15.     @GeneratedValue(strategy = GenerationType.AUTO)
  16.     @Column(name = "user_id")
  17.     private long id;
  18.    
  19.     @Column(name="user_login")
  20.     private String login;
  21.  
  22.     @Column(name="user_password")
  23.     private String password;
  24.  
  25.     public long getId() {
  26.         return id;
  27.     }
  28.  
  29.     public void setId(long id) {
  30.         this.id = id;
  31.     }
  32.  
  33.     public String getLogin() {
  34.         return login;
  35.     }
  36.  
  37.     public void setLogin( String login) {
  38.         this.login = login;
  39.     }
  40.  
  41.     public String getPassword() {
  42.         return password;
  43.     }
  44.  
  45.     public void setPassword( String password) {
  46.         this.password = password;
  47.     }
  48.    
  49. }

Co umożliwia takie rozwiązanie? Przede wszystkim dzięki zastosowaniu adnotacji spada ilość dodatkowych plików zawierających konfiguracje i mapowania. Oczywiście nie da się ich dzięki temu rozwiązaniu wykluczyć zupełnie, aczkolwiek da się znacznie ograniczyć ich użycie. Wielką zaletą, o której do tej pory nie wspomniałem, w przypadku Javy, jest to, że adnotacje możemy odczytywać w czasie uruchamiania programu a nie przed jego kompilacją.

Adnotacja od strony technicznej

Jak można zadeklarować własną adnotację? Służy do tego specjalna konstrukcja:

PLAIN TEXT JAVA:
  1. public @interface Name {
  2.     String value() default "anonymous";
  3. }

Użycie takiej adnotacji:

PLAIN TEXT JAVA:
  1. @ Name // poprawnie
  2. public class Component {}
  3.  
  4. @ Name("user.session") // również poprawnie
  5. public class User {}

Możemy również przekazać kilka wartości gdy zadeklarujemy w adnotacji odpowiednie pole:

PLAIN TEXT JAVA:
  1. public @interface Relation {
  2.     String[] belongsTo();
  3.     String offer();
  4. }

Użycie takiej adnotacji:

PLAIN TEXT JAVA:
  1. @Relation(belongTo = {"users", "groups"}, offer = "privileges")
  2. public class PrivilegesEntityMapping {}

Warto tutaj wspomnieć o dwóch magicznych umowach. Po pierwsze atrybut o nazwie value jest domyślnym przypisaniem wartości podanej w nawiasach. Tzn przy wywołaniu @Name("user.session") możemy pobrać atrybut poprzez [b]annotationInstance.value()[/b]. Po drugie dodanie po nazwie pola default "wartość" pozwala na pominięcie atrybutu przy definicji. Z ograniczeń, jakie mają adnotacje w Javie - wartościami atrybutów mogą być ciągi znaków, typy (klasy) oraz typy wyliczeniowe (enumy).

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

Autor wpisu: stormfly, dodany: 27.12.2007 12:49, tagi: php

W swoich aplikacjach bardzo często wykorzystuje mechanizm, który zamienia wartości tablicy na klucze z pustą wartością. Po takiej operacji bardzo łatwo uzupełnić poszczególne pozycje danymi przesyłanymi za pomocą np. $_REQUEST. Początkowo znalazłem dwa sposoby, które...

Autor wpisu: stormfly, dodany: 10.12.2007 21:29, tagi: php

Od dłuższego czasu przymierzałem się do zastąpienia Smarty innym systemem szablonów (głównie z uwagi na brak informacji o przejściu na PHP5). Pobieżnie przejrzałem listę dostępnych systemów w internecie i postanowiłem sprawdzić nasz rodzinny produkt OPT (Open Power...
Wszystkie wpisy należą do ich twórców. PHP.pl nie ponosi odpowiedzialności za treść wpisów.