Niezalogowany [ logowanie ]
Subskrybuj kanał ATOM Kanał ATOM

Autor wpisu: bastard13, dodany: 05.05.2014 17:13, tagi: design, oop

a zaczęło się to tak...

Jak każdy (a przynajmniej mam taką nadzieję) zespół ludzi pracujący nad tym samym kodem, i w naszym projekcie istnieje dokument ze standardami kodowania. Co jakiś czas wprowadzamy drobne modyfikacje, bo refaktoryzować można (i powinno się) nie tylko kod :) Dzisiaj ten właśnie dokument przeglądał jeden z moich kolegów i natknął się na jedną z moich notatek/uwag w tym dokumencie, którą odrobinę przeredagowaną (niestety użyłem skrótów myślowych pisząc ją :) zamieszczam poniżej:Jeżeli posiadasz klasę abstrakcyjną z metodą publiczną, która jest rozszerzana przez kilka klas nie implementujących tego samego interfejsu, to wiedz, że coś się dzieje. Dobra, samo stwierdzenie może nie być zbyt oczywiste, ale wierzę, że po krótkich wyjaśnieniach dojdziecie nie tylko do wniosku, że ma to sens, ale co więcej, że sami już tą zasadę w kodzie stosujecie.Jakby na to nie patrzeć, jest całkiem naturalna :)Czytaj więcej »

Autor wpisu: Śpiechu, dodany: 02.05.2014 20:31, tagi: php

Some time ago I rediscovered PHP SPL library. After reading Joshua Thijssen’s Mastering the SPL Library I found out that sometimes I was reinventing the wheel in my code, sorry (employers and customers). Iterators are one of the SPL library components. To add more spice to code I’ll show some kind of JavaScript magic using closures.

Simplest and best iterator definition:

Iterators are PHP’s way of dealing with abstracting away the traversal logic from the business logic. This, in one sentence, sums up what an iterator is. [A. Thijssen : Mastering…, p. 68]

My goal for today is to show you how to use IteratorAggregate with CallbackFilterIterators to filter out files not meeting our requirements. Feel free to use this class in your own projects.

Autor wpisu: Wojciech Sznapka, dodany: 27.04.2014 18:20, tagi: framework, mvc, php

Lately I see perilous situation in software development area. There are plenty of good devs so much bounded to tools. By tools, I mean mostly frameworks. I would like to elaborate a bit about that, but those are my personal opinions and they aren’t here to offend anyone.

First of all, we all need to admit, that quality of modern MVC framework raised a lot, comparing with state of things few years ago. Speaking about PHP – at the time, when I attracted my attention to this language, there were pure wilderness. We did not have any strong framework (unlike Ruby On Rails, which were sine qua non choice for Ruby web development). That caused multiple projects development, some of them are dead now (or should be), some hasn’t got good market adaptation and some of them are industry leaders at the moment (Symfony and Zend).

On the other hand, there’s huge temptation to write own frameworks, ignoring the great work of community. That has some advantages, in case you know exactly what you’re doing. Only one good reason for me is performance concerns. But still, doing everything by hand proves lack of understanding of tools and leads to giant problems with system maintenance. For me, it’s hard to imagine how one could create a complex system without usage of good framework. What’s more, its economically unreasonable to recreate the code, that already exists.

Alright, it’s clear –  applications which will serve their purpose are way easier to be created with modern framework. The choice isn’t easy (as well as choice of language), but if you ask me, I’ll say: pick the one you feel the most comfortable with and which is built on top of best design patterns. A framework won’t do the job by its own, though. And this is the point I’d like to make: don’t be bound to the framework. The best quote to reflect this point of view is:

The architecture of an accounting app should scream “accounting” not Spring & Hibernate. Robert C. Martin via https://twitter.com/unclebobmartin/status/118365858581069824

By decoupling from framework (see Jakub Zalas slides) you’ll benefit in multiple ways: your code will be loosely coupled, easier to understand, readable, testable and most important: it will be robust. If for some reason, you’ll have to change framework (because yours isn’t supported any more and super 3rd edition of famous framework comes to general availability), you’ll spend considerably less amount of time to migrate to new libraries.

A thing to remember is, that good software design practices, such as design patterns or SOLID principles, exists for years now. They are applied in all software languages and you’ll find similar concepts both in Java Spring and PHP Symfony. Frameworks, on the other hand comes and goes. In 3 years from now, there won’t be Symfony2 or Zend Framework2, but your code will be still alive and need to be maintained. It’s your choice, if it be completely dependent on framework or if it will rely on proven patterns.

I strongly encourage to read and apply philosophy of Domain Driven Design. It’s better to focus on a core domain and reflect business needs by modelling them with code. Once you’ll be focused on domain, you’ll start to see that framework is only implementation detail and you’ll stop calling yourself Symfony Developer or Zend Developer, but rather Software Developer.

Autor wpisu: Łukasz Socha, dodany: 26.04.2014 18:40, tagi: php

Tworząc nawet małą aplikację internetową musimy zadbać o „przyjazne” linki. Zwiększają one wygodę użytkownika, jak i mają istotny wpływ na SEO. Gdy piszemy aplikację w oparciu o jeden z popularnych frameworków problemu nie ma, dostarczają one komponenty do tworzenia ładnych adresów, ale co w sytuacji, gdy tworzymy bez ich wsparcia? Jednym z rozwiązań jest napisanie […]

Autor wpisu: zleek, dodany: 25.04.2014 08:39, tagi: php

Załóżmy następującą sytuację: tworzymy w Zend Framework formularz, który wśród swoich pól będzie zawierał pole typu select. Pole te ma służyć do wyboru np. języka. Kod html, który ma powstać będzie wyglądał tak: Jak widać nie ma tutaj nic specjalnego. Musimy tylko zadbać, aby użytkownik dokonał wyboru jakiegoś języka. Kod formularza zawierający takie pole w […]

Autor wpisu: zleek, dodany: 23.04.2014 09:16, tagi: css, php

Stosując na stronie www czcionki z grona czcionek dostepnych w Google, można czasem spotkać się z problemem przy wyświetlaniu polskich znaków. Problem może być o tyle ciekawy, że będzie się ujawniał tylko w niektórych przeglądarkach lub tylko w niektórych systemach operacyjnych. W przypadku wystąpienia tego problemu można zauważyć nastepujące nieprawidłowości: cały tekst wyświetlany jest poprawną […]

Autor wpisu: nospor, dodany: 22.04.2014 16:06, tagi: mysql

Przeglądając różne kody często widzę, iż programiści nie zwracają uwagi na to, czy ich pola są NULL czy NOT NULL. Ba, swego czasu mi to tam też było wsio rybka. Jednak jest to dość ważna kwestia.... No dobra, świat się przez nią nie skończy, ale dobrze jest na to zwracać uwagę.
Wszystkie wpisy należą do ich twórców. PHP.pl nie ponosi odpowiedzialności za treść wpisów.