How write JavaScript with Zend Framework and netbe

2019-05-26 19:00发布

问题:

I am writing JavaScript like that:

<?php $this->headScript()->captureStart();?>
$(function(){
    // some javascript magic
});
<?php $this->headScript()->captureEnd(); ?>

But problem is that it is not highlighted and there is no autocomplete... I have tried write like this:

<?php $this->headScript()->captureStart();?>
//<script>
$(function(){
    // some javascript magic
});
<?php $this->headScript()->captureEnd(); ?>

Now it is highlighted but netbeans is not happy about not closed <script> tag and some other issues with Zend... Then after some more googling found this:

<?php if( false ) {?><script><?php } ?>
$(function(){
    // some javascript magic
});
<?php if( false ) { ?></script><?php } ?>

Works fine but maybe there is better solution for this?

回答1:

You can extend HeadScript, this is simplest solution:

class My_View_Helper_HeadScript extends Zend_View_Helper_HeadScript
{
    public function captureEnd()
    {
        $content = ob_get_contents();
        ob_clean();
        echo strip_tags($content, 'script');

        parent::captureEnd();
    }
}

Specify helper path:

resources.view.helperPath.My_View_Helper = "My/View/Helper"

Usage:

<?php $this->headScript()->captureStart();?>
    <script>
      alert(1);
    </script>  
<?php $this->headScript()->captureEnd(); ?>


回答2:

Write your js in external JS files.

It will allow for better separation, better caching, better aggregation, better highlighting, etc.

Here are some links that may help you:

  • Managing CSS/JS with Zend
  • Managing CSS/JS with Zend (another point of view)
  • Setting the javascript build path (for auto completion and stuff like this)