Gettery i settery w PHP

Najpopularniejszym paradygmatem programowania jest programowanie zorientowane obiektowo. Obiekt posiada jakieś właściwości, które [IMO] najczęściej powinny być prywatne. Warto by było móc się do nich jakoś odwoływać, czy to podczas zapisywania danych, czy też w celu odczytu. Do tego bardzo przydatne okazać się mogą funkcje popularnie zwane getter („akcesor” – pobierająca dane) bądź setter („mutator” – ustawiająca).

W tym wpisie postaram się pokazać kilka możliwych podejść do tego zagadnienia.

Czytaj dalej Gettery i settery w PHP

Ajax w oparciu o pływającą ramkę

Ajax w szerszym znaczeniu oznacza komunikację z serwerem [wymianę danych z serwerem] bez konieczności przeładowania strony. Często mówiąc Ajax ma się na myśli także DHTML.

Nie o tym jednak będzie ten artykuł. Mam zamiar pokazać jak w łatwy sposób korzystać z dobrodziejstw Ajaksa bez jednego z filarów – obiektu XMLHttpRequest. Zastąpimy go pływającą ramką, a ramkę tę obudujemy w obiekt XMLHttpIframeRequest, który ma identyczny interfejs z natywnym ajaksowym obiektem.

Czytaj dalej Ajax w oparciu o pływającą ramkę

Różne sposoby konkatencji stringów w JS

Jest kilka sposobów na łączenie cięgów znaków. W tym artykule opiszę 3.

Sposób I – „optymistyczny”

Optymistyczny dlatego, że używa się samych plusów.

[javascript]var string_1 = 'Ala ma ';
var string_2 = 'kota';
alert(string_1 + string_2);[/javascript]

Korzystając z tej metody pamiętaj o różnych niespodziankach związanych z wykorzystywaniem operatora `+’, który jest też wykorzystywany do dodawania liczb. Czytaj dalej Różne sposoby konkatencji stringów w JS

Wzorzec modułu – dobre praktyki

W literaturze spotkać można dwa określenia. Wzorzec modułu [źródło: Mocne strony JavaScript] oraz wzorzec fabryki [źródło: JavaScript dla Webmasterów]. Ja nie widzę zbyt wielkich różnic w samym kodzie, chodzi raczej o ideę, która przyświecała twórcy. We wzorcu modułu stworzyć coś na wzór przestrzeni nazw, komponent całego systemu. W fabryce po prostu funkcję zwracającą obiekt.

Chciałbym zatem tu pokazać kilka dobrych praktyk jakich warto używać przy tworzeniu obiektów z wykorzystaniem wzorca fabryki / modułu. Część z nich jest nieosiągalna w przypadku stosowania np. tworzenia obiektów z prototypu.
Czytaj dalej Wzorzec modułu – dobre praktyki

Tworzenie obiektów w JS z wykorzystaniem konstruktora

W językach obiektowych takich jak Java czy C++, gdzie obiekty tworzy się wykorzystując jako wzorzec klasę, bardzo ważną rzeczą staje się konstruktor. W JS na dobrą sprawdę konstruktor nie jest potrzebny. Można tworzyć obiekty, które nie posiadają jawnie  zadeklarowanego konstruktora (choćby przez literał obiektowy).

Jeśli jednak ktoś jest bardzo przywiązany do konstruktorów (jak choćby ja) może stworzyć konstuktor:

[javascript]var MyObjConstr = function(a, b)
{
    this.func = function() { alert('My func1!'); }
    this.a = a;
    this.b = b;
};

var MyObj = new MyObjConstr(1, 'ala ma kota');
MyObj.func();
alert(MyObj.a);
MyObj.a = 10;
alert(MyObj.a);[/javascript]

Czytaj dalej Tworzenie obiektów w JS z wykorzystaniem konstruktora

Wzorzec łańcuchowy w JS oparty o fabrykę obiektów

Javascript posiada wiele sposobów na tworzenie obiektów. Jednym z nich jest wzorzec fabryki obiektów (czasem zwany wzorcem modułu). Chciałbym pokazać, jak można wykorzystując ten wzorzec stworzyć IMO wygodniejsze obiekty.

Kod prostego obiektu

[javascript]var yPerson = function()
{
    var sName,
        nAge;

    function fName( name )
    {
        sName = name || sName;
        return sName;
    }

    function fAge( age )
    {
        nAge = age || nAge;
        return nAge;
    }

    return {
        name : fName,
        age  : fAge
    };
};[/javascript]

Czytaj dalej Wzorzec łańcuchowy w JS oparty o fabrykę obiektów

„Silne typy” w PHP

PHP jeszcze do niedawna nie miał wcale kontroli typów, teraz to się już trochę zmieniło. Ja jednak uważam, że dla języka skryptowego, który nie jest kompilowany są lepsze sposoby na „wymuszenie” typu niż podawanie go jawnie. Jak? Zapraszam do lektury.

Na początek

Problem z typami

PHP jak to język skryptowy nie posiada silnej typizacji. Do zmiennej można przypisać cokolwiek i nie powoduje to błędu. To, że nie powoduje to błędu składniowego to dobrze. Ale co z logiką. przykładowy kod:

Czytaj dalej „Silne typy” w PHP

Książka: „Wzorce projektowe (…)”

Okładka Wzorce projektowe. Elementy oprogramowania obiektowego wielokrotnego użytku

Olbrzymia większość języków programistycznych wspiera obiektowość lub też nie potrafi bez niej żyć. nic więc dziwnego, że rynek wydawniczy tak ochoczo reaguje na zmiany trendów wśród programistów.

Każdy dobry programista wie, że jego cnotą jest lenistwo. Lenistwo objawiające się taką pracą, aby później nie trzeba było zbyt wiele robić. Każdy dobry programista wie, że lepiej jest wykorzystać znane sposoby rozwiązania, niż samemu wymyślać koło na nowo.

I w końcu, coraz więcej programistów uważa, że warto używać wzorców projektowych. Wzorce projektowe są to przepisy, pewne metoda rozwiązania problemu. Nie jest to gotowy kod. Jedynie pomysł na rozwiązanie jakiegoś częstego zagadnienia. Czytaj dalej Książka: „Wzorce projektowe (…)”