Niezalogowany [ logowanie ]
Subskrybuj kanał ATOM Kanał ATOM

Autor wpisu: sokzzuka, dodany: 02.07.2010 14:21, tagi: php

W najnowszym wpisie na ie blogu zaprezentowane zostało wsparcie dla renderowania zawartości tagu canvas na karcie graficznej (gpu).

Trzeba przyznać, że MS zrobił duży krok naprzód aby zatrzymać spadek popularności swojej przeglądarki. Jeżeli dalej tak pójdzie, to Googlowy Native Client pójdzie w odstawkę, a gry będzie się pisać na canvasie, który stanie się bardziej uniwersalnym API dla 3d od OpenGl, a co więcej będzie niezależny od platformy. Już teraz da się pisać gry na canvasie – polecam obejrzeć: demo doomopodobnej gry opartej właśnie na tym tagu i JS.

Autor wpisu: Damian Rusinek, Piotr Wierzgała, dodany: 02.07.2010 12:23, tagi: doctrine, symfony

Overriding methods should not be a problem, but it can make you confused if you don’t know how magic functions are used in Symfony 1.4 models.

In this short article I will explain why usual overriding does not work in Symfony models and how to override methods handled by magic functions.

Suppose, we have a base model class BaseTopic:

abstract class BaseTopic extends sfDoctrineRecord { public function setTableDefinition() { $this->setTableName('topic'); $this->hasColumn('name', 'string', 255, array( 'type' => 'string', 'notnull' => true, 'length' => 255, )); $this->hasColumn('updates_count', 'integer', null, array( 'type' => 'integer', )); } }

and our class:

public class Topic extends BaseTopic { }

Now we want to update updates_count field each time we modify name field.

First guess is to do the following:

public class Topic extends BaseTopic { public function setName($name) { $this->updates_count++; return parent::setName($name); } }

However it will not work unless you have declared method setName in BaseTopic literally (magical __call does not count).

Upper method will do the following:

  1. Increment updates_count field
  2. Call setName method from BaseTopic (which does not exist literally) so it will look for this method in parents
  3. Because there is no setName in any parent class, it will go to Doctrine_Record and call __call method which will find setName method in Topic class
  4. Call setName from Topic class again

To solve this problem you have to use _set function from Doctrine_Record class:

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

Autor wpisu: batman, dodany: 01.07.2010 18:00, tagi: php

Wkrótce czeka mnie przeprowadzka i w związku z tym postanowiłem przewietrzyć nieco moją biblioteczkę IT. Mam kilka książek, z których już nie korzystam, a grzechem byłoby je wyrzucić. Od razu zaznaczę, iż są to książki używane, wydane kilkanaście (lub więcej) miesięcy temu. Jeśli do którejś była dołączona płyta, to prawie na pewno ją zgubiłem.

Na pierwszy ogień idzie PHP 5 w praktyce. Tym razem zdobycie książki nie będzie zależało od Waszego refleksu. Książka trafi w ręce osoby, która wyśle do mnie wiadomość (link do formularza znajduje się w prawej kolumnie) zawierającą najbliższą rzeczywistości wartość mojego współczynnika BMI ;)

Powodzenia!

Autor wpisu: Śpiechu, dodany: 30.06.2010 19:46, tagi: php, zend_framework

W drugiej części napiszę co nieco na temat nazewnictwa klas i metod. Jak nazywać i czego unikać. Do tego na koniec dodam kilka zaleceń Roberta C. Martina z Czystego Kodu [Gliwice : Helion, 2010]. Klasy Składnikiem nazwy klasy nie powinien być żaden czasownik. Mało tego, nie powinien to być również fragment nazwy implementowanego interfejsu lub [...]

Autor wpisu: matipl, dodany: 30.06.2010 12:56, tagi: php

Xdebug - logoWczoraj Derick Rethans udostępnił w końcu Xdebug w wersji 2.1. W ciągu trzech lat (wersja 2.0 ukazała się w lipcu 2007) poprawione wszelkie błędy i skupiono się nad nowymi rozwiązaniami. Największą nowością jest pełna obsługa PHP 5.3 oraz  wsparcia wyłącznie dla PHP od wersji 5.1.

Xdebug w świecie PHP służy najczęściej do debugowania naszych aplikacji. Ale również posiada możliwość profilowania, jak i przeprowadzenia testu pokrycia kodu. D. Rethans dodał bardzo sporo nowości do Xdebuga, oto one:

  • kolekcja błędów Dodano funkcje xdebug_start_error_collection(), xdebug_stop_error_collection() i xdebug_get_collected_errors(). Zbierają one wszelkie powiadomienia, ostrzeżenia i błędy generowane z error_reporting.
  • gromadzenie nagłówków przez Xdebug Wszelkie funkcje ustawiające nagłówki HTTP (np. header(), setcookie()) są od teraz przechwytywane przez Xdebug. Dostęp mamy do nich poprzez xdebug_get_headers(), która zwraca tablicę.
  • śledzenie wszelkich przypisań do zmiennych Wprowadzono opcję xdebug.collect_assignments, która pozwala na rejestrowanie wszelkich zmian związanych ze zmiannymi w naszej aplikacji.
  • obsługa scream W PECL istnieje rozszerzenie scream wyłączające @ (wyciszanie). Od teraz Xdebug również posiada taką opcję, wystarczy ustawić w php.ini  xdebug.scream.
  • dodatki w stosie śledzenia Wszelki generowany kod HTML przez Xdebug posiada teraz klasy CSS, aby ułatwić łatwiejsze stylowanie.
  • przeciążanie var_dump Wprowadzono możliwość wyłączenia domyślnego przeciążania var_dump. Służy do tego parametr xdebug.overload_var_dump. W momencie gdy wyłączymy przeciążanie, mamy dostęp do Xdebugowej wersji poprzez xdebug_var_dump()

Jak widać przez te kilka lat zrobione kawał dobrej roboty przy projekcie Xdebug.

Download: Xdebug

Autor wpisu: sokzzuka, dodany: 29.06.2010 18:18, tagi: php

Dzisiaj Derick Rethans poinformował na swoim blogu o wydaniu finalnej wersji Xdebug-a 2.1. Ciekawe nowości:

  • funkcje do gromadzenia wszystkich errorów, które pojawiły się w czasie trwania skryptu
  • gromadzenie nagłówków
  • możliwość wyłączenia operatora uciszania „@”
  • output z var_dump teraz oparty jest na stylach dla łatwiejszego formatowania

Poza tym usunięto wsparcie dla starych protokołów debbugowania – gdb i php3 oraz poprawiono wiele drobnych błędów, w tym wywalanie się apache’a pod Vistą / Win7.

Autor wpisu: Vokiel, dodany: 27.06.2010 21:36, tagi: javascript, eclipse, php

Eclipse

23 czerwca 2010 r nastąpiło wydanie nowej wersji Eclipse 3.6 Helios . Owo wydanie jest największym z dotychczasowych wydań: 39 różnych zespołów projektowych, 33 miliony linii kodu, 490 commiterów. Eclipse udostępnia 12 różnych projektów, dla różnych typów programistów. W tym oczywiście dla programistów PHP – czyli Eclipse for PHP Developers . Czemu o tym piszę? Przede wszystkim dlatego, że Eclipse PDT jest moim ulubionym IDE, jest tym, na którym pracuję zawodowo, do którego jestem bardzo przyzwyczajony (dotychczas Eclipse Galileo).

Nowości w Eclipse Helios

Helios wprowadza wiele nowości, część z nich, z punktu widzenia web developera nie ma większego znaczenia. Jednak warto mieć na uwadze zaangażowanie twórców, różnorodność tworzonych rozwiązań, ilość zaangażowanych developerów.

1. Lepsze wsparcie dla Linuxa

Ostatnie badania wskazały na rosnący udział systemu spod znaku pingwina w ogólnej liczbie developerów korzystających z tego IDE. Twórcy Eclipse wyszli im naprzeciw wprowadzając szereg usprawnień dedykowanych pod systemy z tej kategorii. Stworzony został Linux Tools Project , który ma na celu ułatwienie pracy przy programowaniu w C/C++. Zintegrowano m.in. GNU Autotools, Valgrind, OProfile, RPM, SystemTap, GCov, GProf, LTTng, etc.

2. Eclipse Marketplace Client

Eclipse Marketplace

Eclipse Marketplace

Jest to klient zapewniający developerom dostęp do czegoś w rodzaju “app-store” z tą różnicą, że dotyczy wtyczek. Daje możliwość łatwego przeglądania i instalowania nowych plug-in’ów. Będzie dostępnych ponad 100 wtyczek w jednym katalogu, co ma znacznie ułatwić i usprawnić ich wybieranie i dodawanie do programu.

3. Wsparcie dla Git’a

Pojawiło się długo oczekiwane wsparcie dla Git’a (popularnego rozproszonego systemu kontroli wersji). Wprowadzone zostało w projektach EGit oraz JGit. Nowe wydanie EGit 0.8 zawiera nowy widok repozytoriów Git’a, wsparcie dla “fast forward merging” oraz tagowania. JGit 0.8 – które jest wykorzystywane w EGicie dla połączeń z repozytoriami Git pokazało duży skok wydajności aż do 50% podczas pracy z dużymi repozytoriami.

4. Nowości w Web Tools Platform

WTP wprowadza wsparcie dla tworzenia, uruchamiania i debugowania aplikacji napisanych pod najnowsze specyfikacje Java EE (Java EE 6) włączając Servlet 3.0, JPA 2.0, JSF 2.0, and EJB 3.1.

5. Poprawione wsparcie dla JSDT

Framework w JSDT

Framework w JSDT

Ulepszone wsparcie dla JSDT dla programistów JavaScript. W tym framework debugera JavaScript, który umożliwia integrację debugerów JavaScript, takich jak Rhino i Firebug oraz korzystanie z nich bezpośrednio w IDE. Został utworzony nowy pakiet Eclipse IDE for JavaScript Web Developers , który ma na celu ułatwienie programistom JavaScript odszukania, zainstalowania i korzystania z IDE na bazie Eclipse.

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

Wszystkie wpisy należą do ich twórców. PHP.pl nie ponosi odpowiedzialności za treść wpisów.