Er zijn in het verleden al meer topics geweest over PHP editors, maar dankzij de geweldige zoekfunctie op deze site ;-) kan ik ze niet terugvinden.
Ik gebruik als editor graag (de inmiddels verouderde) Zend Studio 5.5
Die editor doet wat ik wil, heeft fijne highlighting en ik kan makkelijk (binnen het programma zelf) een FTP server toevoegen.
Eigenlijk wil ik deze editor blijven gebruiken, ware het niet dat ik ga werken met anonymous functions en de editor dit niet kent. Dussss... eigenlijk moet ik een nieuwe editor: liefst gratis, snel, mogelijkheid om ftp server in te stellen, goede highlighting... wie heeft de gouden tip?
Jeroen, namespaces zijn tja hoe leg je dat uit... Namespaces zorgen voor een scope waarin je kan werken met functies. Buiten die scope kun je die niet meer gebruiken. Even een voorbeeldje:
<?php
namespace OzzieCMS\Model;
class Model
{
// model methods
}
namespace \; // ga naar de normale global scope
$model = new Model(); // werkt niet
$model = new OzzieCMS\Model\Model(); // werkt wel
?>
Het is een beetje moeilijk uit te leggen, maar het is geweldig om er mee te werken.
Ozzie, het voordeel: Schonere klassenamen i.p.v. OzzieCMS_Article_Model() wordt een klassenaam alleen Model() waarbij je in het begin hebt gedefinieerd dat die Model klasse uit de OzzieCMS\Article namespace komt. Voorbeeldje:
/lib/OzzieCMS/Article/Model.php
<?php
namespace OzzieCMS\Article;
class Model
{
// article model methods
}
?>
Andere pagina waarin je de model wilt gebruiken:
<?php
use OzzieCMS\Article\Model; // zorg dat telkens als we Model() gebruik het OzzieCMS\Article\Model() wordt
$articleModel = new Model(); // maak een article model
?>
/lib/OzzieCMS/User/Model.php
<?php
namespace OzzieCMS\User;
class Model
{
// user model methods
}
?>
Bestand waarin we de user model willen gebruiken
<?php
use OzzieCMS\User\Model; // zorg dat Model() OzzieCMS\User\Model() wordt
$userModel = new Model(); // maak een user model aan
?>
Bestand waarin je allebei de models wilt gebruiken
<?php
use OzzieCMS\User\Model as UserModel; // gebruik een alias
use OzzieCMS\Article\Model as ArticleModel; // nog een alias
$articleModel = new ArticleModel();
$articleModel->create(new UserModel());
?>
Zo hou je dus alles mooi gescheiden, krijg je schone klassenamen en zorg je dat we geen conflicten krijgen als je 2 dezelfde klassenamen gebruikt. Zie bijv. ook hoe ik het bij mijn framework gebruik: https://github.com/WouterJ/snakeMvc
In het begin is het lastig, maar als je er mee gewent bent is het heerlijk :D
Ozzie, ik zou als ik jou was Aptana even uit proberen. Ik heb hem weer even gedownload en ik vind hem heerlijk (misschien gooi ik nu wel vim van de computer :D).
Wat dingen die hem geweldig maken:
- ingebouwde console + error checker
- projects
- ftp support
- automatisch inladen
- alle php functies + documentatie (dus als je niet meer weet wat voor argumenten er bij een functie horen kun je dat zo lezen evenals het geen de functie doet)
- mogelijkheid tot zelf documenteren bij functies (je kan je eigenlijk uitleg erbij zetten en dat wordt dan in de rest van het project gebruikt)
- mogelijkheid tot inklappen codes (je kan functies/classes inklappen zodat je minder hoeft te scrollen)
- anonymous functions en namespaces support
Namespaces is in mijn ogen niets meerof minder dan het bundelen van classes in packages en het voorkomen dat je lange namen moet gebruiken. Eigenlijk als je OzzieCMS_Model_Article gebruikt als naam gebruik je eigenlijk al namespaces want je packaged je classnames.
voor mac heb je onder andere goede editors zoals vim, aptana en sublime text. heb wel wat negatieve verhalen over sublime text gehoord, kan me alleen niet meer herinneren welke...
Kees, dit ben ik met je eens. Alleen ik doelde in dit geval op het namespace support van PHP.
Ozzie, tja dan moet je maar verder op jou zend methode. Ik kan je alleen aanraden wat ik fijn vind te gebruiken, als jij iets anders fijner vind: gebruik het!
[offtopic]Toch grappig dat je de verschillen ziet, jij bent ZF gewent en houd dus vaak vast aan die methoden. Ik ben meer een Sensiolabs (SF, Silex, Pimple, enz.) aanhanger en vind die standaarden en methoden beter[/offtopic]
jeroen, waarschijnlijk dat je voor sublime moet betalen en je voor de kwaliteit van Sublime ook andere gratis editors hebt.
En Vim is ook een windows editor, alleen heb je voor de mac de MacVim versie...
Raoul, helaas is niet alles voor windows en mac ;-) Ik zit hier ook vaak met dingen waarvan ik denk, waarom geen windows versie ;-)
Voor Mac heb je Aptana, MacVim, Sublime, Textmate (wel betaald, maar wat ik ervan zie is het geweldig) en nog wat andere.