Autocompletion in de view
Door Niels K, 15 jaar geleden, 19.496x bekeken
Beste PHP vrinden,
Ik kon vroeger altijd zo 'kribbig' worden om het feit dat je in de view geen code completion hebt. Gelukkig heb ik daar een tijdje geleden de oplossing voor gevonden, en ik wilde het jullie niet onthouden.
Stel je hebt de volgende controller: (dummy code)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
class ShopController extends Zend_Controller_Action {
/**
* Categorie overzicht
*/
public function indexAction() {
$tableCategory = new Application_Model_DbTable_Category;
$category = $tableCategory->find($this->getRequest()->getParam('category_id'))->current();
$this->view->articles = $category->getArticles();
}
}
?>
class ShopController extends Zend_Controller_Action {
/**
* Categorie overzicht
*/
public function indexAction() {
$tableCategory = new Application_Model_DbTable_Category;
$category = $tableCategory->find($this->getRequest()->getParam('category_id'))->current();
$this->view->articles = $category->getArticles();
}
}
?>
Daarbij hoort de volgende view:
Code (php)
Nu zou het heel leuk zijn als je bij variabele $article autocompletion zou hebben. Stel je voor dat het Article object 50 methodes bevat. Je weet, zeker als je net in het project zit, niet precies meer welke functies er zijn er hoe ze heten. Elke keer wanneer je een functie moet hebben moet je terug naar je Article object file om te kijken welke functies er ook al weer op een Article object beschikbaar zijn.
Nu is daar een oplossing voor. Zie onderstaand stukje code: (regel 4)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<div class="articles">
<?php if (count($this->articles) > 0): ?>
<?php foreach ($this->articles as $article): ?>
<?php /* @var $article Application_Model_Article */ ?>
<div class="article">
<div class="article-title"><?php echo $this->escape((string) $article) ?></div>
<!-- enz -->
</div>
<?php endforeach; ?>
<?php endif; ?>
</div>
<?php if (count($this->articles) > 0): ?>
<?php foreach ($this->articles as $article): ?>
<?php /* @var $article Application_Model_Article */ ?>
<div class="article">
<div class="article-title"><?php echo $this->escape((string) $article) ?></div>
<!-- enz -->
</div>
<?php endforeach; ?>
<?php endif; ?>
</div>
Je geeft aan de hand van de tab @var aan dat variabele $article een Application_Model_Article object is. Je hebt nu gewoon autocompletion op je $article variabele.
Support:
Ik heb in de volgende editors getest:
- Eclipse
- Zend Studio
- Netbeans
Tot slot,
Het is een klein hulpmiddel om wat snelheid te winnen met programmeren, niet heel spectaculair maar ik wilde het jullie niet onthouden!
Veel succes ermee.
Niels
Gesponsorde koppelingen
Inhoudsopgave
- Geen tutorials aanwezig.
Er zijn 5 reacties op 'Autocompletion in de view'
Om te reageren heb je een account nodig en je moet ingelogd zijn.
PHP hulp
0 seconden vanaf nu