Niezalogowany [ logowanie ]
Subskrybuj kanał ATOM Kanał ATOM

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: WojciechNaruniec, dodany: 08.01.2008 14:52, tagi: zend_framework

Też czekacie na Zend_Form? Andries Seutens przygotował małe demo pokazujące obsługę formularza w oparciu o implementację Zend_Form znajdującą się w laboratorium Zend Framework. Ten jeden z najbardziej oczekiwanych komponentów do pakietu ma wejść wraz z Zend Framework w wersji 1.5. Komponent załatwia całą obsługę formularza, od konfigurowania jego pól za pomocą API, przez filtrację i [...]

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...

Autor wpisu: Athlan, dodany: 03.12.2007 21:47, tagi: internet, php.pl

Dziś opublikowałem specyfikację usługi dev.php.pl. Zainteresowanych zapraszam na forum.

Warto podkreślić, że Zarząd PHP.pl nie będzie budował usługi sam, tylko z uzytkownikami dostosowywujac się do ich potrzeb.

Po co to wszystko? Forum przegląda masę talentów, które niestety nie mogą się wykazać. Poprzez dołączenie domeny dev otworzymy furtkę tym, którzy nie mieli okazji przedstawić swoich możliwości, a patrząc na niektóre projekty można dostrzec tylko namiastkę umiejętności programowania i co najważniejsze - pomysłowości - naszego community. Dodatkowo wortal php.pl będzie starał się promować najlepsze projekty poprzez wymienienie ich tytułów i innych materiałów na stronie głównej nowopowstałego serwisu.

Autor wpisu: Athlan, dodany: 26.11.2007 21:17, tagi: internet

Grzebiąc dziś rano w Internecie natknąłem się na linka Michalczewski: obiję mu ten głupi łeb, żeby zmądrzał. Zauważyłem, że Michalczewski jest w miarę podobny do Ragniego - administratora fotka.pl. Aby się upewnić wszedłem w jego profil. Patrzę i OWNED : D. Zdjęcie adekwatne do tytułu dzisiejszego artykułu na sport.onet.pl.

Kliknij na zdjęcie, aby powiększyć.

Autor wpisu: Jaroslaw Mężyk, dodany: 13.11.2007 19:45, tagi: php

Ostatnie miesiące to przede wszystkim wytężona praca nad nowym projektem, który wczoraj miał swoją premierę. Ten projekt to połączenie oprogramowania CRM z Contact Center w modelu ASP (Application Service Provider). Ten projekt to serwisowa.pl. serwisowa.pl to nie tylko oprogramowanie pozwalające zarządzać bazą danych klientów i ich sprzętu, ale także system wychodzący poza internet i integrujący w [...]
Wszystkie wpisy należą do ich twórców. PHP.pl nie ponosi odpowiedzialności za treść wpisów.