Kotlin týden Zimní výprodej
Pouze tento týden sleva až 80 % na e-learning týkající se Kotlin
40 % bodů zdarma díky naší Zimní akci!

Jak pohodlně vyvíjet webové projekty

Jak již z názvu vyplývá, tento článek bude stručné shrnutí mých dosavadních poznatků, toho, jak mám řešené vývojové prostředí a jak tvořím weby.

Lokální WAMP server

Pokud chceme vytvořit web, budeme potřebovat lokální server. Představa, že každou změnu budeme nahrávat přes FTP klienta a zkoušet na webu je přímo děsivá. Snad ani nemusím zdůrazňovat, že je to jednak pomalé a tedy neefektivní a nedej bože, že by někoho napadlo ladit přímo life-situ.

Takže jako první krok, pokud jste tedy ještě neučinili, budete potřebovat rozjet onen WAMP server (Windows Apache Mysql PHP). Viz: Instalace XAMPP na Windows

Úprava lokálních DNS - doména prvního řádu

Líbí se vám obrázek výše? Jde o to, že ve svém CMS používám pretty url teda například davosovo/edit/clanek A kdybych to měl na localhostu a členěné do složek vypadalo by to například takto: localhost/SczCMS/edit/clanek A už bych musel modifikovat systém a osekávat parametry. Protože další projekty můžu mít například localhost/Projets/drbnito/edit/clanek Jistě si tedy dokážete představit jak neefektivní a pracné by to bylo pokaždé přepisovat a myslet na to. Proto si upravíme lokální DNS záznamy. Zjednodušeně jde o to, že zadáme URL například davosovo a IP adresu na kterou se má URL přesměrovat, jelikož my chceme přesměrovat na lokální počítač použijeme 127.0.0.1. Osobně to dělám tak, že pokud vyvíjím nějaký web tak si přidám záznam a až je hotový odlazaný a vím, že už ho nebudu předělávat, tak si záznam smažu, abych v tom pak neměl guláš. Ale samozřejmě to nevadí, záznamy se skládají přehledně pod sebe, takže jich můžete mít kolik jen chcete.

Jak to tedy provést?

Stiskněte Windows + R a zadejte: C:\Windows\System32\drivers\etc\ v tomto adresáři zeditujte soubor hosts například v notepadu (ale pozor, pokud máte zapnutý UAC potřebujete mít editor spuštění pod právy administrátora, jelikož Vista+ má systémový disk "chráněný" proti zápisu).

Obsah tohoto souboru by měl vypadat nějak takto:

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
#       127.0.0.1       localhost
#       ::1             localhost
127.0.0.1 davosovo
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

A jak vidíte úplně dole, přidal jsem si tam vlastní záznam. Mřížka # znamená jednořádkový komentář. localhost je zakomentovaný, jelikož je to jakýsi standard a DNS ho automaticky zpracovává.

Zálohy na cloudu

Dříve než si nasměrujeme náš přidaný DNS záznam do nějakého adresáře, doporučuji založit si nějaký cloud, například: Dropbox Vaše zdrojáky se budou automaticky synchronizovat a verzovat. Budete k ním mít přístup odkudkoli a pokud je omylem smažete nebo něco pokazíte tak si můžete obnovit až 100 verzí zpět. Ve složce Dropbox si udělejte nějaký organizační pořádek. Já mám Programming\Language\Category.

Přesměrování apache do jiného adresáře

Najděte si složku s XAMPPem a otevřete konfigurační soubor apache: C:\xampp\apache\conf\httpd.conf

A tam si následujícím způsobem zařídíte přesměrování do daného adresáře:

<VirtualHost *:80>
ServerName http://localhost
DocumentRoot "C:\Users\David\Dropbox\Programming\PHP"
</VirtualHost>

<VirtualHost *:80>
ServerName http://davosovo
DocumentRoot "C:\Users\David\Dropbox\Programming\PHP\SczCMS"
</VirtualHost>

Můžete si to dát kam chcete, já to mám tuším někde hned ze začátku pod těmi komentáři. Ale když si tam pohledáte tak zjistíte, že je to vždycky: Komentáře - dokumentace (popis) jak co udělat, volné místo. A předpokládá se tedy, že tam se bude to pro co je v těch komentářích vysvětlivka psát.

IDE

Nyní přejdeme k IDE a jeho nastavení. IDE oproti editoru je mocný nástroj. Rozumí kódu, umožňuje nám refactoring, reformatting, doplňování abstraktních metod, interfaců, zobrazování proměnných, které používáme, výpis popisků daných tříd/metod/pro­měnných, rychlou orientaci v kódu a mnohé další. Což pokud to umíme naplno využívat nám velmi zefektivní práci. Na začátky ale doporučuji pracovat v editoru. Tak se daný jazyk velmi rychle naučíte. Mohu prozradit, že první verze ITnetwork byly psané v Notepad++. Dělali jsme v tom asi 2 roky.

Já osobně jsem si oblíbil PHPStorm, kde jsem si podědil ovládání s VisualStudia, nastavil nějaké zkratky, tmavý vzhled, doplňování šablon záhlaví atp.

**Doporučuji si prolézt a ponastavovat***

  1. IDE Settings/Appe­arance/Theme -> Darcula (tmavý vzhled se světlým písmem - kódím třeba celý den a na oči je to ideálka)
  2. IDE Settings/File Templates -> Nastavení záhlaví (autor, kontakt), obsahu šablon etc
  3. Code style nastavení vašeho stylu psaní kódu - doporučuji nastavit, můžete si pak reformátovat jakýkoliv kód do vašeho stylu.
  4. File Encodings - UTF-8 (doporučuji nastavit DB, FTP, Editory - výchozím nastavení na stejné kódování a nejlépe na Unix, jinak s tím pak jsou problémy)

Vytvoření nového projektu

Prázdná složka, nebo složka s existujícími zdrojovými soubory

Propojení s SVN

Pokud děláte v týmu, tak jste určitě již zjistili nebo vám říkám, že zjistíte, že přes Dropbox to nejni až zas tak efektivní. Můžete si přepsat soubory (Dropbox vytvoří pro každého novou kopii s jeho jménem a pak musíte dohledávat změny). SVN nám umožňuje připsat komentář ke změnám, IDE nám pak ukáže rozdíly a můžeme s tím mnohem lépe pracovat.

Následující screenshoty snad řeknou vše :)

Pokud se vám pod pravým myšítkem u souborů a složek neobjeví po propojení s SVN možnost Subversion a nemůžete tedy commitovat změny. Udělejte prvně checkout.

Debugging webu

Jenom taká poznámečka na závěr. Až budete web ladit na prohlížečích, tak teď nedávno jsme zjistili, že v IE10 nefunguje simulační mód a v IE9 je to takové pofidérní. Museli jsme si zřídit virtuální stroj s XP, kde máme originál IE8. Protože ono to v tom simulačním módu IE8 u IE10, IE9 a originál IE8 vypadá občas úplně jinak :D

Obrázek je jen ilustrativního charakteru, nejni tam ukázána žádná chyba.

Tak to bude ode mne nejspíš vše.


 

 

Článek pro vás napsal David Jančík
Avatar
Jak se ti líbí článek?
5 hlasů
Autor je vášnivý programátor. Nezná slovo "nelze", nebojí se zkoušet nepoznané a pronikat do nových technologií.
Všechny články v sekci
Ostatní tutoriály v PHP
Miniatura
Následující článek
Úprava PHPMailer-u aby používal menné priestory (namespaces)
Aktivity (3)

 

 

Komentáře

Avatar
Kit
Redaktor
Avatar
Kit:2.8.2013 18:06

PHP 5.4 už Apache nepotřebuje. Alespoň ne pro lokální použití. MySQL je také pro webové projekty zbytečné. Takže stačí jen PHP 5.4 nebo vyšší nainstalovat a spustit.

Odpovědět
2.8.2013 18:06
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na Kit
David Jančík:2.8.2013 18:09

Aha, já tu mám balíček XAMPPu, sem to instaloval sám jednou a to mě moc nebavilo, rači si jen poklikám další další :D Ale normálně tu mám 5.4 a Apache tam je. Tak jak to teda je funguje? A kde se tam teda dá nastavit to nasměrování na adresář? Povídej přeháněj!

Odpovědět
2.8.2013 18:09
Zapomeň, že je to nemožné a udělej to ;)
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Jančík
Kit:2.8.2013 18:27

Spouštím to takto:

php -S localhost:8080 -t adresář

a na portu 8080 (nebo jiném) se objeví webserver s domovským adresářem "adresář". Do něj si uložíš soubor "router.php", "index.php" nebo nejlépe oba.

"router.php" se pak do produkce nedává, je vlastně náhradou ".htaccess". Píše se normálně v PHP. Zapneš si v něm hlášení noticek, logování chyb, uděláš si hezká URL apod.

Takových serverů si můžeš spustit tolik, kolik máš volných portů a RAM. Vezme si jí asi 5 MB + data, což je výrazně méně než u Apache.

Editováno 2.8.2013 18:28
Odpovědět
2.8.2013 18:27
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Artas
Redaktor
Avatar
Artas:15.8.2013 17:15

Je možné, že mi konfigurace virtual hostu nefunguje s diakritikou?
Potřeboval bych nasměrovat do

C:\Users\Václav\SkyDrive\Programming\Web\

a když zadám tuhle cestu, tak apache nenastartuje.

 
Odpovědět
15.8.2013 17:15
Avatar
Kit
Redaktor
Avatar
Odpovídá na Artas
Kit:15.8.2013 17:18

Apache nevstupuje do virtuálních zařízení. Je to jedno z bezpečnostních opatření. Pokud to skutečně potřebuješ, povol si to v konfiguraci.

Odpovědět
15.8.2013 17:18
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Artas
Redaktor
Avatar
Odpovídá na Kit
Artas:15.8.2013 17:37

Promiň, ale v tomhle se hrabu poprvé, můžeš mě navést trochu přesněji. Díky

 
Odpovědět
15.8.2013 17:37
Avatar
Kit
Redaktor
Avatar
Odpovídá na Artas
Kit:15.8.2013 17:48

SkyDrive je někde na serveru mimo tvoje PC, ne? Nebo je to lokální adresář?

K čemu vlastně potřebuješ Apache?

Editováno 15.8.2013 17:49
Odpovědět
15.8.2013 17:48
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Artas
Redaktor
Avatar
Odpovídá na Kit
Artas:15.8.2013 17:49

SkyDrive je lokální adresář, ze kterého se soubory synchronizují na server.

Na apache jsem zvyklý - má v sobě vše co potřebuji - php i mysql.

Editováno 15.8.2013 17:50
 
Odpovědět
15.8.2013 17:49
Avatar
Artas
Redaktor
Avatar
Odpovídá na Kit
Artas:15.8.2013 17:58

Mě jde jen o to, že když jsem měl VirtualHost nastavený na D:\Web, tak vše fungovalo, ale já bych to kvůli záloze dat chtěl mít právě na tu složku od SkyDrive, ale jakmile jí nastavím, tak se mi Apache ani nezapne.

 
Odpovědět
15.8.2013 17:58
Avatar
Kit
Redaktor
Avatar
Odpovídá na Artas
Kit:15.8.2013 17:59

Tak to nevím. S Apache na Windows nemám zkušenosti.

Naučil jsem se používat PHP 5.4 bez Apache a bez MySQL. Jen tak samotné. Švihá to pěkně včetně databáze a zabere to méně RAM.

Odpovědět
15.8.2013 17:59
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Artas
Redaktor
Avatar
Odpovídá na Kit
Artas:15.8.2013 18:02

Nevadí. Snad poradí někdo jiný.

Co se týče používání PHP bez Apache, tak jelikož mám stávající projekty postavené na MySQL, tak je pro mě Apache ideální řešení.

 
Odpovědět
15.8.2013 18:02
Avatar
Artas
Redaktor
Avatar
Odpovídá na Kit
Artas:15.8.2013 18:05

Můžu mít ještě dotaz ohledně toho, jakou databázi používáš? Díky

 
Odpovědět
15.8.2013 18:05
Avatar
Kit
Redaktor
Avatar
Odpovídá na Artas
Kit:15.8.2013 18:07

MySQL není vůbec vázáno na Apache. Můžeš mít webserver PHP a k němu databázový server MySQL. Apache jako mezičlánek není pro lokální použití nutný.

Odpovědět
15.8.2013 18:07
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na Artas
David Jančík:15.8.2013 18:07

Tak u Kita je to jasné eště když říká že jede jen na PHP - SQLite.

Odpovědět
15.8.2013 18:07
Zapomeň, že je to nemožné a udělej to ;)
Avatar
Kit
Redaktor
Avatar
Odpovídá na Artas
Kit:15.8.2013 18:16

Nejčastěji SQLite, protože je z běžně dostupných databází nejrychlejší a přitom umí jazyk SQL lépe než MySQL. Na jednoduché úložiště používám GDBM nebo DB4, které jsou ještě o jeden řád rychlejší, ale nehodí se na všechno. Na externí chybové hlášky CDB, na konfiguraci INIFILE. Na server typu Webgame, kde je obrovské množství změn, bych bez váhání dal Redis, protože má "vestavěné ORM" - prostě databáze se skládá z kolekcí a je pekelně rychlá.

Kromě Redisu je vše dostupné téměř na každém hostingu.

Odpovědět
15.8.2013 18:16
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Jančík
Kit:15.8.2013 18:25

Zkoušel jsem ještě asi pět dalších databází, ale jejich výsledky mě nijak neoslnily a navíc na webhostingu se běžně nenacházejí. Jejich uplatnění je spíš specifické a pro běžný web výkonově zaostávají.

Dokonce jsem do svého PHP vecpal i Firebird :)

Editováno 15.8.2013 18:29
Odpovědět
15.8.2013 18:25
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Artas
Redaktor
Avatar
Odpovídá na Kit
Artas:15.8.2013 18:28

O SQLite také uvažuji pro budoucí projekty. Mimochodem, už se mi podařilo rozchodit co jsem potřeboval - musel jsem SkyDrive složku přesunout jinam. Vypadá to, že nastavení Apache se nelíbila diakritika v cestě k DocumentRootu u VirtualHostu.

 
Odpovědět
15.8.2013 18:28
Avatar
Kit
Redaktor
Avatar
Odpovídá na Artas
Kit:15.8.2013 18:37

Tip: Pokud budeš do SQLite často zapisovat, použij WAL
http://www.sqlite.org/draft/wal.html

Odpovědět
15.8.2013 18:37
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Artas
Redaktor
Avatar
Odpovídá na Kit
Artas:15.8.2013 18:58

Díky za radu, mrknu na to.

 
Odpovědět
15.8.2013 18:58
Avatar
gimeno
Člen
Avatar
gimeno:1.2.2014 19:43

„Nastavení záhlavý“ je zaujímavá vec.

Odpovědět
1.2.2014 19:43
Programujem, teda som.
Avatar
Michal Žůrek - misaz:12.2.2014 19:20

nevíš proč, když jsem to udělal jako ty, tak Přesměrování apache do jiného adresáře hází 403? Je k tomu nějaký log s podrobnějšími informacemi?

Editováno 12.2.2014 19:21
 
Odpovědět
12.2.2014 19:20
Avatar
mkub
Redaktor
Avatar
mkub:24.2.2014 6:36

len taka poznamocka... podla tohoto nbavodu sa k tomu vyvijanemu webu neda dostat odnikial, iba z lokalneho PC, lebo zaznamy v subore hosts sa nikam nedistribuuju, plati iba pre localhost, ale ak by ten web mal platit pre lokalnu siet, tak su 2 moznosti:

  • doplnit zaznamy v subore hosts (casovo narocnejsie a neprakticke)
  • pouzit specializovany program na preklad domenovych adries na IP adresy (cistejsie riesenie, jednoduhsia sprava domen, ale narocnejsie na znalost o domenach)
 
Odpovědět
24.2.2014 6:36
Avatar
mkub
Redaktor
Avatar
Odpovídá na Michal Žůrek - misaz
mkub:24.2.2014 6:37

pozri sa do logov XAMPP, v chybovom logu od Apache mas info, v com je chyba

 
Odpovědět
24.2.2014 6:37
Avatar
Odpovídá na mkub
Michal Žůrek - misaz:24.2.2014 6:44

z domácí sítě = všichni připojení na jedno stejné wi-fi. Jsem se na to dostal i z mobilu, když jsem potřeboval otestovat responzivní design. Prostě jsem napsal IP adresu mojeho notebooku (v mém případě to bylo myslím 192.168.0.101).

Mínuskuj si to jak chceš, sám jsem to použil sám vím.

 
Odpovědět
24.2.2014 6:44
Avatar
mkub
Redaktor
Avatar
Odpovídá na Michal Žůrek - misaz
mkub:24.2.2014 7:00

myslim, ze si nepochopil, co je domena a co je IP adresa...
subor hosts, ako aj DNS system sluzi na preklad domen (nieco ako www.devbook.cz) na IP adresu (v tomto pripade 178.238.37.157)...
skus zadat v subore hosts toto:

127.0.0.1 www.devbook.cz

a skus nacitat nasledne adresu: www.devbook.cz
a presne toto robi aj DNS system, len s tym rozdielom, ze DNS system este aj tieto zaznamy poskytuje ostatnym zariadeniam v sieti, ale co sa tyka suboru hosts, tak ten plati iba v jednom zariadeni a ak by si mal siet zlozenu z 10-tych PC, tak by si musel urobit zmenu v hosts vo vsetkych

DNS system nevykonava prepojenie medzi PC, od toho su ine sluzby, DNS vykonava iba preklad domenoveho mena na IP adresu, tak, ako to robi aj subor hosts, ale pre celu siet, nie pre jedno PC

Editováno 24.2.2014 7:02
 
Odpovědět
24.2.2014 7:00
Avatar
mkub
Redaktor
Avatar
Odpovídá na Michal Žůrek - misaz
mkub:24.2.2014 7:10

a vyhoda DNS je taka, ze nemusis si pamatat adresu 192.168.0.101, ale staci ti zadat napr.: http://misaz a si na svojej stranke,
http://projects - si na stranke projektov,...
a to nielen z lokalu, ale aj z mobilu pripojeneho k lokalnej wifi, alebo ineho zariadenia v sieti...

 
Odpovědět
24.2.2014 7:10
Avatar
youtubak777
Člen
Avatar
youtubak777:1.9.2014 9:59

Jsou nějaké PHP IDE zdarma ?

 
Odpovědět
1.9.2014 9:59
Avatar
Odpovídá na youtubak777
Neaktivní uživatel:1.9.2014 10:21

Netbeans :) nič lepšieho zdarma asi nenájdeš, prípadne požiadaj o študentskú licenciu PhpStormu. Otázka je či IDE skutočne potrebuješ.

Odpovědět
1.9.2014 10:21
Neaktivní uživatelský účet
Avatar
Honza Bittner
Šupák
Avatar
Odpovídá na youtubak777
Honza Bittner:1.9.2014 14:43

Eclipse je také docela dobré... :)

Odpovědět
1.9.2014 14:43
Student FIT ČVUT. In love with Dart &...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 29 zpráv z 29.