wtorek, 17 lipca 2018

Przyszłość PHP - Czy warto uczyć się tego języka

Wielu początkujących zadaje sobie pytanie, czy warto uczyć się języka PHP? Jaki jest dziś język PHP a co daje konkurencja? W tym temacie  napiszę, czy warto uczyć się języka PHP.

Dziś język php jest w wersji 7 i wiele nowych funkcji wprowadziło a jakich, to odsyłam do strony głównej, ponieważ, nie jest to temat na funkcje PHP wersji 7.

Ale odpowiedzmy sobie na pytanie, czy dziś warto uczyć się języka PHP? 
Odpowiedź brzmi, TAK!, warto i dlaczego?
  •  są oferty pracy, które poszukują programistów PHP,
  •  jest dużo hostingów z tym językiem,
  •  jest popularny!
A jakie są wady tego języka? Zanim napiszę o wadach, to jeszcze napiszę o tym, dlaczego warto uczyć się języka php. PHP to nie tylko nauka samej składni, ale też poznanie licznych frameworków, począwszy od CakePHP, Symfony, Zen Framework po CodeIgniter i bardziej popularny, lepszy od poprzedników Laravel. I też wymagają pracodawcy znajomości, chociaż jednego frameworka z tych wymienionych. 

Dobrze, a wady? PHP jeżeli chodzi o połączenie z bazą danych, to ma dwa jeszcze zalecane  sposoby, a nimi są: new mysqli (powoli od tej metody odchodzi się) i PDO zalecane i coraz więcej ludzi przechodzi na tą metodę. Nie oznacza, że stosując new mysqli, aplikacja nie będzie działać, czy przestanie działać za 5 lat, nie, ale wtedy stanie się już przestarzała jak mysql_query, której już nie zaleca się!
Język php, to też CMS-y i czasem bywa  kłopotliwe stosowanie tego języka, że nasza strona wolniej chodzi. Ja mimo to, jestem za uczeniem się  języka PHP!

PHP a konkurencja

Zadajmy sobie kolejne pytanie, jak bardzo rozwinął się język PHP na tle innych języków, w których można tworzyć aplikacje internetowe?
PHP nie rozwinął się tak jak inne języki, była wersja 5, później 5.5, 5.6. Następnie, miała być wersja 6, ale wycofano i po danym czasie dano wersję 7 języka php. W między czasie, też powstały nowe frameworki np: wyżej wymieniony CodeIgniter, czy Laravel. 

JavaScript - dużo lepiej rozwinęła się niż PHP. Kiedyś JS, był zwykłym językiem a teraz powstało na bazie JS wiele bibliotek, zaczynając od JQuery, Node.JS, Angular.JS po React i Vue.js.
Dziś za pomocą JS, można stworzyć CMS, który lżejszy jest i co ważne, szybciej ładuje się. Dlatego, oprócz nauki PHP, warto też uczyć się JavaScript. 
Powstały też technologie .NET, Ruby, Python itd. Jak widać, konkurencja jest silna i nie należy ograniczać się tylko do jednej technologii webowej. Później może okazać się, że PHP na hostingu zostanie usunięty!

czwartek, 12 kwietnia 2018

CKEditor i TinyMCE - instalacja obu edytorów na stronę internetową

W temacie dotyczącym porównania obu edytorów, przestawiłem różnice oraz pokazałem jak wyglądają. Wspomniałem na końcu, że kolejny temat, będzie dotyczyć konfiguracji obu edytorów oraz integracji pluginu KCfinder, darmowego rozszerzenia ładowania zdjęć do swoich tekstów. 

W tym temacie omówię, tylko konfigurację obu edytorów a w kolejnym instalacje rozszerzenia KCFinder.
Zacznę od instalacji CKEditora.Nie muszę pisać, ale zakładam, że wybrałeś odpowiednią wersję CKeditora z tej strony https://ckeditor.com/ckeditor-4/download/  z trzech możliwych wersji:


Następnie, pobierz i wypakuj do swojego katalogu, w którym ma działać strona z edytorem. Po rozpakowaniu, będziesz miał różne katalogi oraz luzem dwa pliki: ckeditor.js i config.js, na razie nigdzie nie umieszczaj i upewnij się, że będzie Ci działać. U mnie tak wyglądają katalogi po rozpakowaniu:


 Aby można było ujrzeć rezultat, wystarczy, że twój kod, będzie tak wyglądać.


Zauważ, że na górze ramach head jest dodany plik ckeditor.js. Jest to ścieżka do pliku, bez niego nie zadziała edytor, będzie samo pole textarea. Jak zauważyłeś, name w textarea jak i CKEDITOR.replace('editor1'), mają taką samą nazwę. Jeżeli wszystko przebiegło tak jak ja mam, to edytor powinien działać. Wygląd już pokazałem we wcześniejszym temacie, więc pominę dodawanie ponownego zrzutu edytora. 
Oprócz plików ckeditor.js i config.js, też jest ważny plik build-config.js, jednak w tym pliku nic się nie zmienia a jak już mamy skonfigurować i dodawać dodatkowe pluginy, to konfigurujemy w pliku config.js. 

Czas na instalację edytora TinyMCE
Tu również zakładam, że pobrałeś odpowiednią wersję i rozpakowałeś do katalogu, w którym będzie działać edytor. Po rozpakowaniu powinieneś mieć takie pliki:

Nie zwracaj na dużą ilość katalogów, ponieważ ja już dodawałem inne pliki z obsługą dodawania tekstu na stronę z obsługą bazy danych.
Mój edytor jest akurat w pliku dodaj.php i bez znaczenia jest, czy w index.php, czy w innym pliku, będzie kod edytora.
U mnie plik dodaj.php (fragment, gdzie jest kod odpowiadający za działanie edytora) wygląda tak:


I to już wszystko, żadnego kodu w atrybutach textarea nie dodajesz! Pamiętaj, aby było id="textarea" w linii po name. I nie zapomnij dodać linijki w ramach <head></head>, która odnosi się do skryptu obsługującego edytor:
<script src='js/tinymce/tinymce.js'></script> 

Na powyższym obrazku jest pokazany fragment kodu odpowiadający za działanie kcfindera, który jest bezpłatnym dodatkiem do obu edytorów. A teraz pokażę sam  kod odpowiadający za kcfinder:

Dlatego, nie martw się, że u mnie jest więcej kodu, ale ten kod jak i nad nim zrzut, będzie ponownie pokazany, gdy będzie omawiana instalacja  tego darmowego dodatku do tych edytorów.

I to wszystko, otwórz stronę i zobacz, czy działa. Jak nie działa, to znaczy, że coś przeoczyłeś.

Następny temat to omówienie KCFinder w obu edytorach.

poniedziałek, 18 grudnia 2017

Laboratorium PHP: Wyszukiwanie polskich słów w bazie danych - mysqli, php

W internecie jest dużo tematów, w którym użytkownicy piszą i pytają, jak napisać kod, aby wyszukiwarka wyszukiwała polskie słowa np: z ę, ą,ł itd, w bazie danych. Jest kilka rozwiązań.

Szukając po forach, przeważnie można spotkać rozwiązanie, które wyszukuje polskie słowa w bazie danych i takim rozwiązaniem jest napisanie takiego zapytania:

SELECT `sth` FROM `table` WHERE LOWER(`column`)LIKE LOWER('%sth%') 
COLLATE utf8_polish_ci

Trzeba pamiętać, że trzeba za każdym razem dopisywać COLLATE utf8_polish_ci. Ja jednak rozwiązałem to inaczej, i pokazują to dwa zrzuty mojego kodu. 
Pierwszy jest połączeniem z bazą a drugi zapytanie bez COLLATE utf8_polish_ci.


Korzystając z VertrigoServ, który ma swój pakiet, to ma domyślne hasło vertrigo, dlatego nie zamazałem hasła. Gdyby połączenie dotyczyło mojego hostingu, to już tak:)
Widać, że wystarczy jedna linijka, aby wyszukiwanie z polskimi znakami działało.
Teraz jak wyżej pisałem, będzie zapytanie, które wyszukuje polskie słowa w bazie danych.


W tym kodzie, co widać na zrzucie, nie ma w zapytaniu COLLATE..... Można zadać mi pytanie, po co mam w zapytaniu imię, nazwisko, wiek, dział, skoro szukam po słowie w bazie. Ten kod, dotyczy wyszukania pracowników w bazie z danego działu! Może to być dział rachunkowość, bankowość i ewentualnie można za pomocą tego kodu, wyszukać pracowników z poszczególnych miast. Wystarczy zmienić zmienną w php i też w formularzu (nie koniecznie) oraz zmodyfikować zapytanie, aby wyszukiwało po danej miejscowości.
Dalej w kodzie widać pobranie i wyświetlenie danych. I wszystko!

wtorek, 24 października 2017

CKEditor i TinyMCE - porównanie edytorów na stronę internetową

Można spotkać wiele edytorów na stronę internetową i każdy edytor ma inne funkcje, poza tymi standardowymi jak np: pogrubienie, podkreślenie, wybór koloru czcionki, czy ułożenie tekstu z lewej, wyśrodkowane, z prawej i justowanie. Mogę tak wymieniać. 

Jednak poza dużą ilością edytorów są dwa edytory, które są bardzo popularne i na przemian stosowane. Takimi edytorami są: CKEditor i TinyMCE. Wiele pytań w internecie jest z pytaniem:

Jaki edytor wybrać? CKEditor czy TinyMCE?

Są podzielone zdania, jedni wolą ckeditor ze względu na dużą funkcjonalność i dużą ilość opcji bez żadnych rozszerzeń a drudzy wolą tinymce z powodu, że jest szybszy, łatwiej jest go skonfigurować i ma bogatszą bibliotekę rozszerzeń. Zajmijmy się samymi edytorami bez żadnych rozszerzeń! 

CKEditor wersja 4.

Testując u siebie na lokalnym komputerze, wybrałem dużą szerokość, co widać na zdjęciu. Na zdjęciu jest pokazany ckeditor wersja pełna,która ma wszystkie pluginy w paskach narzędzi. 
Jeżeli chcemy dodać zdjęcie z dysku lub z internetu, to wybieramy z paska narzędzi ikonę obrazka i pojawia się okno z dużą ilością opcji.


Już na tym etapie mamy sporo ustawień. Klikając lub wybierając przeglądaj, nie będziemy mieli opcji dodania zdjęcia, ponieważ od tego zależą dodatkowe konfiguracje a co za tym idzie, dodanie rozszerzenia dodawania zdjęć. Ja wybrałem KCFinder i jest to darmowe rozszerzenie, lecz tu w tym temacie, nie będę opisywał.  Jeżeli nie mamy rozszerzenia ładowania zdjęć a chcemy wybrać zdjęcie z dysku lub mamy i mamy taki edytor na stronie, to trzeba najpierw przenieść zdjęcia do folderu, który mamy na serwerze i dać odpowiednią ścieżkę. klikamy OK i mamy zdjęcie w edytorze. 
Warto zwrócić uwagę na opcję rozmiaru zdjęcia, którą przed umieszczeniem możemy zmienić. Jeszcze jedno, gdy mamy zdjęcie, to możemy w ustawieniach wyrównania określić położenie zdjęcia i wtedy mamy automatycznie ustalone położenie, gdzie będziemy mieli tekst.

A jak to wygląda w edytorze TinyMCE wersja 4?

Tak najnowsza wersja edytora TinyMCE prezentuje się i o wiele lepiej wygląda niż wersja 3, która jest znana np: z cms'a php-fusion. Tu również jest wersja pełna ze wszystkimi narzędziami.  Jak wygląda ładowanie zdjęć w tym edytorze? Proszę zobaczyć na poniższe zdjęcie.


Nie muszę pytać, czy jest różnica, bo to gołym okiem widać. TinyMCE ma mniej funkcji i jak w CKeditorze tak samo jest w TinyMCE, chodzi o ładowanie plików podając adres obrazka. Tylko w TinyMCE dodając obrazek, nie mamy opcji wyboru położenia obrazka względem treści. Możemy tylko rozmiar określić. Jeżeli chcemy mieć obok obrazka tekst, trzeba z paska narzędzi wybrać wyrównanie z lewej. 

Co do ułożenia ikon i funkcji w pasku narzędzi, to sami możemy wybrać jakie narzędzia będziemy mieli i można to w bardzo prosty sposób zrobić. Ale o konfiguracji edytorów w tym wspomnianym wyżej KCFinder, poświęcę osobny temat.

Odpowiadając na pytanie, jaki edytor wybrać i który będzie lepszy, to zależy wyłącznie od Ciebie. Moim zdaniem oba są dobre i każdy edytor ma swoje plus i minusy.
Sam napisałem aplikację z oba edytorami i świetnie sprawdzają się, ale gdybym musiał wybrać, to CKEditor!

środa, 23 sierpnia 2017

Laboratorium PHP: Ponowny zapis do bazy po odświeżeniu strony

Na forum o tematyce programowania w php, można znaleźć tematy użytkowników, którzy mają problem z problemem jakim jest ponowny zapis do bazy danych. 

Niby to jest banalna sprawa i każdy wie jak to rozwiązać, to nie każdy umie sobie poradzić sobie z tym problemem.  Można zrobić na kilka sposobów, ale ja przedstawię dwa sposoby. Jeden jest bardzo dobrze znany a drugi hmmm, zobaczymy:)

  1. Jeżeli mamy bazę z tabelami zapełnionymi rekordami, to najlepiej dać np: jedną kolumnę na unikatowy. I po ponownym odświeżeniu strony nie będzie takiego samego  rekordu.
  2. Drugi sposób, to stworzyć dodatkową kolumnę, gdzie będą zapisywane losowe liczby. Natomiast losowe liczby mają dodawać się do bazy z ukrytego pola w formularzu. I teraz, można ponownie ustawić jako unikatową wartość w bazie lub napisać zapytanie sql, który sprawdza, czy jest już taka losowa liczba w bazie. To dział, bo sam pisałem na lokalnym serwerze skrypt. Tylko każdy jest przyzwyczajony, do gotowców, więc nie podam tu tego skryptu, ale dałem rozwiązanie;)
 Jak będzie prośba o podanie skryptu, to podam:) A teraz sam samodzielnie napisz skrypt.

środa, 24 maja 2017

Laboratorium PHP: Jak odczytywać wyniki wyszukiwań w bazie danych?

Temat dotyczy jak napisać, zrobić, aby wyniki wyszukiwań były odczytane z bazy danych. Od razu zaznaczam, że nie będzie kodów. Dlaczego? Zakładam, że czytelnik zna php i robił podstawowe skrypty takie jak: dodawanie danych do bazy z poziomu formularza lub tworzył niejedną wyszukiwarkę w php.

To wydaje się być trudne, ale tak nie jest:) Jeżeli tworzyłeś skrypty CRUD  w php, to w zasadzie już masz gotowy skrypt! W tym momencie zastanawiasz się, jak to gotowy skrypt, przecież CRUD, dotyczy tworzenia, usuwania, modyfikacji i usuwania, ale zauważ, że tworzenie (litera C) odnosi się do tworzenia wpisu, rekordu w bazie. 
Co w takim razie jest potrzebne, aby działało zapisywanie wyników wyszukiwania w bazie?
  1. Baza danych - podstawa! I teraz zależy jaki mechanizm składowania danych wybierzesz. Jak InnoDB, to zapomnij o wyszukiwaniu pełnotekstowym! Do tego należy wybrać MyISAM!
  2. Formularz wyszukiwania - tu wpisujesz hasło, słowo kluczowe,
  3. Twój skrypt napisany w php, który odpowiada za wyszukiwanie i dodawanie rekordu. Czy użyjesz mysql_connect, new mysqli lub PDO, to wyłącznie Twoja sprawa!
Zastanawiasz się, dlaczego na czerwono pogrubionym tekstem jest mysql_connect? Ponieważ jest to przestarzała metoda i nie powinno jej się używać. Nawet new mysqli powoli odchodzi, ale jest dużo lepszym rozwiązaniem niż mysql_connect.

Jak znajdę czas, może napiszę skrypt i wrzucę w ten temat. Jednak myślę, że Ty czytelniku, dasz sobie radę:)

wtorek, 25 kwietnia 2017

Other IT: Photoshop vs.Gimp - jeszcze raz o programach graficznych

W poprzednim temacie napisałem o programach graficznych oraz pisałem, czy warto używać do wszystkiego  photoshopa. 

Jeżeli jesteś programistą, który pisze kod w php, asp.net, js, i w podobnych językach webowych oraz używając html/css a nie jesteś grafikiem komputerowym, to zadaj sobie pytanie, czy potrzebny jest Ci photoshop?

Do jakich celów jest przeznaczony photoshop? Między innymi do takich celów, jak:
  • tworzenie szablonów/template na cms-y (wspomniałem o tym w poprzednim temacie),
  • retusz zdjęć i obróbka,
  • tworzenie postaci do gier komputerowych (nie do końca, choć tu mogę mylić się, ponieważ, mogą też być tworzone w programach 3D),
Może być więcej zastosowań, ale jest jeszcze jedno.....

Nie tylko graficy komputerowi 

Photoshop nie jest używany tylko przez grafików, choć graficy dominują, ale program photoshop używają też  fotografowie, którzy potrzebują profesjonalnego programu do obróbki zdjęć. 
Nie wiem jak w gimpie, ale photoshop przewyższa gimpa w tej kategorii.

Ułatwiając Ci wybór nad dwoma programami, to zadaj sobie pytanie, czy będziesz korzystać z photoshopa używając to co jest w powyższych punktach. Jak nie, i będziesz tworzył/a bannery, loga, drobne ikony o czym wspomniałem też w poprzednim temacie, to do tych celów wystarczy GIMP!

Co wybierzesz, to już zależy wyłącznie od Ciebie i nie będzie to złym wyborem, ale czy warto kupować photoshop,  aby tworzyć tylko bannery, znaki, loga? Moim zdaniem, nie.