Archiwum kategorii ‘Darmowe artykuły’

Łańcuch wywołań

sobota, 13 Sierpień 2011

Często w kodzie programów pisanych obiektowo można napotkać konstrukcje typu:

$obiekt = new Klasa($a);
$obiekt->metoda1($a)->metoda2($b)->metoda3(c);

Jednak gdy napiszemy prostą klasę i spróbujemy wywołać jej metody w ten sposób, otrzymamy błąd. Można o tym się przekonać na poniższym przykładzie.

<?php
	class Kalkulator
	{
		private $a=null;
 
		public function __construct($n)
		{
			$this->a=$n;
		}
 
		public function dodaj($n)
		{
			$this->a+=$n;
		}
 
		public function odejmij($n)
		{
			$this->a-=$n;
		}
 
		public function pomnoz($n)
		{
			$this->a*=$n;
		}
 
		public function podziel($n)
		{
			$this->a/=$n;
		}
 
		public function wynik()
		{
			return $this->a;
		}
	}
 
	$t=new Kalkulator(12);
	echo $t->dodaj(8)->podziel(5)->odejmij(1)->pomnoz(3)->dodaj(2)->wynik();
?>

wygenerowany błąd to:

Fatal error: Call to a member function podziel() on a non-object in C:\xampp\htdocs\index.php on line 38

Błąd mówi o tym, że metoda podziel jest wywoływana na czymś, co nie jest obiektem. Metoda podziel jest wywoływana jako druga w łańcuchu wywołań. Z tego faktu płynie wniosek, że wcześniejsza metoda powinna dostarczyć kolejnej metodzie obiekt, na którym będzie mogła być wywołana. Mówiąc prościej, metoda dodaj powinna zwracać obiekt poleceniem return. Obecnie nie zwraca niczego.

Dopiszmy zatem na końcu tej metody polecenie return… Obiekt wewnątrz klasy jest wskazywany przez referencje $this, więc w ten właśnie sposób możemy zwrócić w tej metodzie obiekt: zapisując return $this.

Gotowa metoda powinna wyglądać tak:

	public function dodaj($n)
	{
		$this->a+=$n;
		return $this;
	}

To samo należy zrobić z pozostałymi metodami, za którymi mogą być wywołane inne metody. W zasadzie w każdej metodzie publicznej, gdzie nie występuje jeszcze instrukcja return, lub nie zwraca ona żadnych istotnych informacji, możemy rozważyć zwracanie referencji $this. W przypadku klasy Kalkulator wyjątkiem jest jedynie metoda konstruktora, na której i tak nie da się wywołać kolejnych metod, gdyż wywołana jest ona podczas tworzenia obiektu.

Gotowy kod klasy Kalkulator powinien wyglądać następująco:

<?php
	class Test
	{
		private $a=null;
 
		public function __construct($n)
		{
			$this->a=$n;
		}
 
		public function dodaj($n)
		{
			$this->a+=$n;
			return $this;
		}
 
		public function odejmij($n)
		{
			$this->a-=$n;
			return $this;
		}
 
		public function pomnoz($n)
		{
			$this->a*=$n;
			return $this;
		}
 
		public function podziel($n)
		{
			$this->a/=$n;
			return $this;
		}
 
		public function wynik()
		{
			return $this->a;
		}
	}
 
	$t=new Test(12);
	echo $t->dodaj(8)->podziel(5)->odejmij(1)->pomnoz(3)->dodaj(2)->wynik();
?>

Efektem działania tego kodu będzie wyświetlenie liczby 11.

Jeżeli zainteresował Cię ten artykuł, z pewnością chciałbyś się dowiedzieć również jak i do czego stosować: polimorfizm, składowe statyczne, interfejsy, klasy i metody abstrakcyjne, klasy i metody finalne, przeciążanie pól i metod, oraz kilka innych technik. Zajrzyj do programowania obiektowego w PHP.



Jak efektywnie integrować płatności

piątek, 5 Sierpień 2011

Dostałem w tym tygodniu aż trzy zapytania o integrowanie systemów płatności ze stroną www. Podobne wiadomości trafiały do mnie również i wcześniej, ale nigdy aż trzy w jednym tygodniu.

Dlaczego tyle z tym problemów?

Przecież firmy świadczące usługi realizacji płatności przez Internet udostępniają pełną dokumentację.

Okazuje się, że sprawa nie jest taka prosta. Dokumentacja jest dosyć sucha i uboga w praktyczne przykłady, a pewne kwestie naprawdę potrzebne, są zwyczajnie pominięte.

Formularze zintegrowane z płatnościami w najprostszej postaci działają w ten sposób, że wszystkie pola formularza wysyłane są do serwera płatności, a właściciel czy administrator strony dostaje tylko informację, że wpłynęła płatność na określoną kwotę. Jeżeli chcemy znać wszystkie dane użytkownika wpisywane do formularza na naszej stronie, musimy trochę pokombinować.

Poznaj moje rozwiązanie

Nie każdy chce kombinować sam, tym bardziej, że ktoś przed nim już coś pewnie wykombinował. Dlatego proponuję krótki, treściwy i praktyczny do bólu kurs, a w zasadzie dwa kursy dotyczące płatności. Są to:

  1. „Integracja systemu płatności Dotpay”
  2. „Integracja systemu płatności Platnosci.pl”

kanały płatności Dotpay



Bazy danych w aplikacjach internetowych III kolejne lekcje

poniedziałek, 1 Sierpień 2011

Dziś dodam kilka kolejnych lekcji. Jest tam dokończenie tworzenia tabel na potrzeby kolejnych lekcji. Łączenie tabel warunkiem WHERE oraz złączenia INNER JOIN i LEFT JOIN.

Myślę, że te tematy Cię zainteresują. Gdyby coś było dla Ciebie niejasne – na dole jest formularz w którym możesz zadawać pytania.

Dla większej wygody można powiększyć nagranie klikając ikonkę w prawym dolnym rogu filmu. Klip wymaga wtyczki Adobe Flash Player.

Jeżeli interesują Cię dalsze lekcje, zapraszam: Bazy danych w aplikacjach internetowych



Bazy danych w aplikacjach internetowych III

poniedziałek, 1 Sierpień 2011

Poniżej prezentuję pierwsze lekcje trzeciej części szkolenia „Bazy danych w aplikacjach internetowych”. Cała reszta będzie dostępna za około tydzień.

Pierwsze lekcje to w zasadzie powtórzenie z tworzenia projektu w DBDesigner i synchronizacji z bazą danych. Gdyby coś było dla Ciebie niejasne – na dole jest formularz w którym możesz zadawać pytania.

Dla większej wygody można powiększyć nagranie klikając ikonkę w prawym dolnym rogu filmu. Klip wymaga wtyczki Adobe Flash Player.

Jeżeli interesują Cię dalsze lekcje, zapraszam: Bazy danych w aplikacjach internetowych



Bazy danych w aplikacjach internetowych II lekcja 40.

czwartek, 14 Lipiec 2011

Poniżej prezentuję jedną z lekcji drugiej części szkolenia „Bazy danych w aplikacjach internetowych”. Niedługo zapraszam na trzecią część. Link do formularza zamówienia znajduje się pod filmem.

To nagranie omawia dosyć nową funkcję skryptu PhpMyAdmin. Nie przypadkowo wybrałem właśnie tę lekcję. Oprócz tego, że omawiam w niej jedną z zakładek skryptu PhpMyAdmin, to prezentuje ona możliwości języka HTML5, a ściślej rzecz ujmując obiektu canvas. Gdyby coś było dla Ciebie niejasne – na dole jest formularz w którym możesz zadawać pytania.

Dla większej wygody można powiększyć nagranie klikając ikonkę w prawym dolnym rogu filmu. Klip wymaga wtyczki Adobe Flash Player.

Jeżeli interesują Cię pozostałe lekcje, zapraszam: Bazy danych w aplikacjach internetowych



Bazy danych w aplikacjach internetowych II

czwartek, 2 Czerwiec 2011

Poniżej prezentuję pierwsze lekcje drugiej części szkolenia „Bazy danych w aplikacjach internetowych”. Cała reszta będzie dostępna w połowie czerwca. Link do formularza zamówienia znajduje się pod filmem.

Tematem tych lekcji są relacje między tabelami. Zagadnienie bardzo istotne i myślę, że ciekawe. Gdyby coś było dla Ciebie niejasne – na dole jest formularz w którym możesz zadawać pytania.

Dla większej wygody można powiększyć nagranie klikając ikonkę w prawym dolnym rogu filmu. Klip wymaga wtyczki Adobe Flash Player.

Jeżeli interesują Cię dalsze lekcje, zapraszam: Bazy danych w aplikacjach internetowych



HTML 5 – czy to już?

poniedziałek, 9 Maj 2011

HTML 5 – mówi się o nim od jakichś 2 lat. Jeszcze mało osób go używa, ale pewnie za pół roku będzie dominował w wymaganiach rekrutacyjnych. Przyznam, że nie przywiązywałem dotąd do niego zbytniej wagi, głównie ze względu na Internet Explorery. Dopiero 9 wersja tej przeglądarki jest zgodna z HTML 5. „Dziewiątka” ma już prawie 2 miesiące, czy w związku z tym należy używać HTML 5?

Moim zdaniem nie. Mam taką zasadę: Stosuję takie technologie, które są obsługiwane przez przynajmniej 95% użytkowników. Zresztą kilka razy wspominałem o tym przy uwagach na temat IE6. Gdy wejścia z tej przeglądarki spadły poniżej 5%, przestałem brać ją pod uwagę. Gdybym zaczął używać teraz HTML 5 odrzuciłbym znacznie więcej użytkowników. O ile Firefox, Opera i Chrome są dosyć szybko instalowane w najnowszych wersjach, to starsze wersje Internet Explorera trzymają się latami.

Co z tego, że mamy już IE9, jeżeli IE7 jest używany przez prawie 8% internautów? O IE8 nie wspominam, bo po pierwsze: nie minęły jeszcze pełne 2 miesiące od premiery IE9 (15 marca 2011), więc tu sytuacja jeszcze dojrzewa, a po drugie IE8 radzi sobie z HTML 5 całkiem znośnie.

Inaczej jest z IE7 i IE6. Te dwie wersje generują łącznie około 10% wejść na stronę. (Dane o popularności przeglądarek pochodzą z serwisu ranking.pl i w miarę dokładnie pokrywają się z danymi ze statystyk mojej strony, więc uważam je za rzetelne.) Przypomnę. IE6 i IE7 generują łącznie około 10% wejść na stronę, i nie potrafią poprawnie wyświetlić prostej strony w HTML 5. Zgodnie z przytoczoną wcześniej zasadą poczekam, aż ich popularność spadnie poniżej 5% i wtedy będę zalecał stosowanie HTML 5. Może nawet wcześniej przygotuję jakiś kurs? Chyba że nikogo to nie interesuje? Dajcie znać poniżej, co o tym sądzicie?



Bazy danych w aplikacjach internetowych cz. 4

wtorek, 19 Kwiecień 2011

Poniżej prezentuję czwartą lekcję szkolenia „Bazy danych w aplikacjach internetowych”. Cała reszta będzie dostępna na początku maja. Link do formularza zamówienia znajduje się pod filmem.

Dla większej wygody można powiększyć nagranie klikając ikonkę w prawym dolnym rogu filmu. Klip wymaga wtyczki Adobe Flash Player.

Zapraszam na szkolenie Bazy danych w aplikacjach internetowych Tylko dziś do każdego zamówienia dołączam za darmo e-booka o wartości 37 zł „Podstawy pracy z bazą danych MySQL”!



Bazy danych w aplikacjach internetowych cz. 3.

poniedziałek, 18 Kwiecień 2011

Poniżej prezentuję trzecią lekcję szkolenia „Bazy danych w aplikacjach internetowych”.

Dla większej wygody można powiększyć nagranie klikając ikonkę w prawym dolnym rogu filmu. Klip wymaga wtyczki Adobe Flash Player.

Zapraszam na szkolenie Bazy danych w aplikacjach internetowych Tylko dziś i jutro do każdego zamówienia dołączam za darmo e-booka o wartości 37 zł „Podstawy pracy z bazą danych MySQL”!



Bazy danych w aplikacjach internetowych cz. 2.

piątek, 15 Kwiecień 2011

Poniżej prezentuję drugą lekcję szkolenia „Bazy danych w aplikacjach internetowych”.

Dla większej wygody można powiększyć nagranie klikając ikonkę w prawym dolnym rogu filmu. Klip wymaga wtyczki Adobe Flash Player.

Zapraszam na szkolenie Bazy danych w aplikacjach internetowych