IDE – PhpEd (nastaveni, tipy a triky)
- Endrju
- Člen | 147
Zdravim, vytvoril jsem tento thread, protoze behem nastavenim NuSphere PhpEd jsem musel projit vice threadu a pripadne se poptat na dalsi nastaveni. Timto bych chtel nejak seskupit vse co se nastaveni a ruznych tipu kolem tohoto IDE tyka
Proc PhpEd? Na prezentaci Davida
o Nette, ktera probehla 11.11.2009 v Ostrave na VSB jsem videl, ze on sam
pouziva PhpEd, a tak jsem si hned nasel, oc se jedna.
O debugovani a tracovani PHP kodu se mi do te doby ani
nesnilo (pouzival jsem PSPad
) a doplnovani kodu je proste
uz tresnicka :). Ma i mnoho dalsiho, ale to by byl jiny thread.
Software:
- NuSphere PhpEd (verze 5.6, build 5615)
- WampServer (verze 2.0)
- Apache (verze 2.2.11)
- PHP (vezre 5.2.9–2)
- MySQL (vezre 5.1.36)
Pred nastavenim projektu:
Po naisnatlovani PhpEd jsem zkopiroval soubor
C:\Program Files\NuSphere\PhpED\dbgwizard\dbg-wizard.php
do root
adresare meho serveru (nastavuje se v Apachi v souboru
httpd.conf
), u mne je to adresar D:\webserver\
.
Nyni, kdyz spustite v prohlizeci adresu
http://localhost/dbg-wizard.php
, tak se vam zobrazi stranka, na
ktere najdete par dulezitych informaci k tomu jak zprovoznit debugger na vasem
serveru.
Pokud debugger jeste nemate zprovoznen, tak v casti
„What did I find out about your system
“ najdete dole cervene
napsano „DBG (PHP DEBUGGER) is not installed
“ a v nasledujici
casti „How to install Server side DBG module
“ je vam receno kam
a jaky soubor si mate zkopirovat.
U mne to byl tedy soubor
C:\Program Files\NuSphere\PhpED\debugger\server\Windows\x86\dbg-php-5.2.dll
(mam 32bit Windows 7), ktery jsem zkopiroval do adresare:
C:\Program Files\wamp\bin\php\php5.2.9-2\ext\dbg-php-5.2.dll
a
nasledne upravil php.ini
pridanim techto radku:
zend_extension_ts="C:\Program Files\wamp\bin\php\php5.2.9-2\ext\dbg-php-5.2.dll"
[debugger]
debugger.hosts_allow= 127.0.0.1 localhost
debugger.hosts_deny=ALL
debugger.ports=7869
Zmeny se projevi az po restartovani serveru, tak na to nezapomente.
Tak a ted k nastaveni projektu:
- File → New Project (nebo pravym tlacitkem na workspace → New Project)
- Spusti se vam Project setting wizard.
- Pak je jeste treba nastavit cestu k defaultnimu souboru pro spusteni
- Tento bod muzete vynechat pokud je adresar
LIBS_DIR
(definovany v index.php a nastavuje cestu ke knihovnam jako je napr. Nette, dibi, …) zahrnut v root adresari vaseho projektu (viz. nize ma struktura projeku). Pokud ovsem mate adresarLIBS_DIR
namapovany mimo adresar projektu:- Tak si jeste otevrete nastaveni projektu Project → Project
properties a tam pridejte tento adresar ve skupině Files do
políčka
Code insight includes
- A take (nevim, zda to neni v podstate to same jako bod vyse) pridejte
tento adresar v zalozce Mapping.
Remote directory
bude stejny jakoLocal Directory
aURL
zustane prazdna.
- Tak si jeste otevrete nastaveni projektu Project → Project
properties a tam pridejte tento adresar ve skupině Files do
políčka
- Pak pokud chcete, aby se pri debugovani debugger zastavil az na breakpointu
(nebo chybe) a ne hned na prvnim radku kodu:
- Tools → Settings → Run & Debug:
Stop on the first line after run
- Tools → Settings → Run & Debug:
- Také se vám může hodit, aby se kurzor v editoru nenastavoval za
konec řádku:
- Tools → Settings → Editor settings:
Cursor beyond EOL
- Tools → Settings → Editor settings:
Jeste pro uplnost pripichnu vzorovou strukturu projektu, na ktere mi toto nastaveni funguje:
Adresar projektu je napriklad D:\webserver\Nazev_projektu\
, kde
D:\webserver
je adresar root serveru.
Nazev_projektu/
+--app/
| +--AdminModule/
| | +--presenters/
| | +--templates/
| | + ...
| +--FrontModule/
| | +--presenters/
| | +--templates/
| | + ...
| +--log/
| +--models/
| +--presenters/
| +--temp/
| +--bootstrap.php
| + ...
+--document_root/
| +--index.php
| + ...
+--libs/
| +--dibi/
| +--Nette/
| + ...
+ ...
Editoval Endrju (14. 3. 2010 9:34)
- Endrju
- Člen | 147
Nevim, zda se tento problem vyskytuje jen u mne ale nevim jak nastavit, aby se mi soubory v editoru oteviraly, zobrazovaly a ukladaly ve znakove sade UTF-8.
Kdyz v PSPad ulozim soubor, ktery obsahuje diaktitiku v UTF-8, tak se mi v PhpEd zobrazi tyto znaky dost podivne.
Priklad:
- PSPad
$form->addText('username', 'Uživatel:');
$form->addSubmit('login', 'Přihlásit');
- PhpEd
$form->addText('username', 'UĹľivatel:');
$form->addSubmit('login', 'Přihlásit');
Docela se mi nechce pak kazdy soubor s diakritikou specialne editovat v PSPad a do nastaveni PhpEd jsem se uz dival, ale mozna jsem neco prehledl.. (musi to prece nejak jit)
Nevite prosim nekdo jak toho docilim? Dekuji!
PS: nechtel jsem to michat do puvodniho postu.
- Mikulas Dite
- Člen | 756
Prima souhrn!
Znaková sade je buď v Tools/Settings/Default encoding
a nebo
http://i50.tinypic.com/2nw0l54.png (oboje je docela těžko
k nalezení, protože to nejsou selectboxy jak bych očekával, ale upravené
textboxy)
- Endrju
- Člen | 147
Uaaaa to by me **** :D. Ja to nastaveni prohledavam skrz naskrz a nikde nic a
ani by me nenapadlo to hledat jinde, kdyz jsem UTF-8
nastavil uz v
Menu
→ Tools
→ Settings
→
IDE
→ IDE Settings
:
Default file encoding
.
A Navic to nemelo ani zadny efekt :/.
Dovolim si sem priplacnout ten tvuj screen jeste jednou, protoze me to fakt pomohlo, DIKY!
Editoval Endrju (24. 2. 2010 21:22)
- Jan Tvrdík
- Nette guru | 2595
K nastavení debugování považuji za samozřejmost instalaci addonu do FF – DBGbar. Nebo existuje způsob, jak rozumně debugovat i bez něj?
Pro inspiraci: moje nastavení interface pro běžnou práci a pro debugování.
- Jan Tvrdík
- Nette guru | 2595
Když nastavíš v IDE -> Associations
asociaci přípony
*.phtml
se Smarty (+ zrušíš případnou asociaci s HTML), tak
se to částečně obarví, ale ideální to není.
- Martin
- Člen | 171
Ahoj. Mám problém: Kvůli padání xdebugu při zobrazování obsahu proměnných v netbeans se pokouším zprovoznit phpEd s dbg-php-5.3.dll. Když pod dbg-php spustím projekt, fukční v prohlížeči i při debuggování v netbeans, odkrokuju až k prvnímu
<?php
use Nette\...
?>
obvykle v bootstrap.php a tam to spadne s hlášením:
ERROR: E_PARSE
parse error, expecting `T_CONSTANT_ENCAPSED_STRING' or `'(„
at bootstrap.php line 4
, přičemž Nette a všechna zpětná lomítka jsou červeně
vlnovitě podtržená.
Přitom v záložce phpEd Output mám v title:
"http://localhost:8080/www/index.php?DBGSESSID=406088463427700012;d=1,p=0,c=1“.
Pokud tam napíšu „http://localhost/JmenoProjektu/www/index.php“, zobrazí
se běžící aplikace, samozřejmě ale nefunguje debugger. Moc nerozumím té
rozdílné cestě a jak se to přesměrovává.
Zkoušel jsem do nastavení projektu přidat Nette adresář do
Properties/Code insight includes i do
Includes, ale bez úspěchu. Je dobře, že v této záložce
vidím soubory frameworku červeně?
Předpokládám, že jde o nějakou maličkost, kterou jsem opomenul
v instalaci či nastavení, ale i přes procházení fór i návodů na nic
nemohu přijít. Chová se to stejně v módu PHP CLI
(php.exe) i HTTP mode (SRV local WEB server).
3rd party WEB server mi debugger nespustí vůbec, i když to
nastavím podle návodu zde jako na lokální. Nebo netušíte někdo, jak
opravit ten padající xdebug při prohlížení proměnných v netbeans?
Editoval Martin (6. 3. 2011 20:42)
- Martin
- Člen | 171
Díky za informaci. To mě napadlo hned, v Netbeans také nastavuji verzi php, aby mi fungovaly jmenné prostory. Ale v phpEd to nemohu nikde najít. Na kartě Project Properties mám šedivou druhou záložku Encoder, píše mi to, že nemám zakoupený NuCoder. A nikde jinde jsem zmínku o verzi php nenašel. Není možné, že verze phpEd 5.8, kterou jsem dostal k nainstalování v zaměstnání, vůbec php 5.3 nepodporuje?
- Martin
- Člen | 171
Tak dík, opravdu s novým trialem se to rozjede, holt požádám zaměstnavatele o zakoupení obnovy. Přitom starší verze už měla debugger pro php 5.3, čekal bych, že i syntaxi to bude umět přečíst, akorát to třeba nebude umět nějaké napovídání. Teď mám zase jiné problémy, ale pokusím se chvíli řešení hledat sám, než tady budu otravovat se začátečnickými dotazy.
- jasir
- Člen | 746
Setkával jsem se s tím, že zapnutí debugu bylo neúnosně pomalé (PhpEd žral procesor třeba 10 sekund po skončení debugu). Zjistil jsem, že mu vadí dlouhá řádka vygenerovaného Debug Baru tady
Nahradil jsem jí tedy ve svojí verzi Nette za toto:
<?php
debug.innerHTML = <?php echo str_replace('\n',"\\n\\\n",json_encode(@iconv('UTF-16', 'UTF-8//IGNORE', iconv('UTF-8', 'UTF-16//IGNORE', $output)))) ?>;
?>
a od té doby pohoda. Třeba to někomu ušetří nervy.