PHP Sluittag discussie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Henk PHP

Henk PHP

12/05/2012 17:14:25
Quote Anchor link
Ik zie het steeds vaker: php-bestanden zonder sluit tags.
Zoiets bijvoorbeeld (CakePHP AppController):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php

    App::uses('Controller', 'Controller');

    class AppController extends Controller
    {

        public $helpers = array('Js' => 'MooTools', 'Time', 'Html', 'Session', 'Form');
        public $components = array('Session');

        public function beforeFilter ()
        {


            $this->theme = Configure::read('Site.theme');

        }

    }

?>

Voor de duidelijkheid: normaal heeft dit bestand geen ?>, maar ik moest het in dit geval toevoegen, anders werkt de formatting niet op het forum.

Het was me eerlijk gezegd in eerste instantie niet opgevallen, maar het is gewoon valid. Sterker nog, zelfs Zend raad je aan om php-bestanden niet te sluiten met een ?>


Zend Manual:
The closing tag of a PHP block at the end of a file is optional, and in some cases omitting it is helpful when using include() or require(), so unwanted whitespace will not occur at the end of files, and you will still be able to add headers to the response later. It is also handy if you use output buffering, and would not like to see added unwanted whitespace at the end of the parts generated by the included files.

Nog sterker: Zend verbiedt het gebruik van de sluitingstag bij php-only bestanden.

Zend reference guide:
For files that contain only PHP code, the closing tag ("?>") is never permitted. It is not required by PHP, and omitting it´ prevents the accidental injection of trailing white space into the response.

http://framework.zend.com/manual/en/coding-standard.php-file-formatting.html

Toch zie ik op bepaalde plekken hevige discussies over waarom het wel en niet goed zou zijn. Ik was benieuwd hoe men er op PHPHulp over dacht.
Gewijzigd op 12/05/2012 17:29:52 door Henk PHP
 
PHP hulp

PHP hulp

03/03/2024 16:08:35
 
Wouter J

Wouter J

12/05/2012 17:27:10
Quote Anchor link
Ik volg de Symfony Coding Standards en die zegt het volgende:
Quote:
Don't end class files with the usual ?> closing tag;


Dit betekend in bestanden die echt bedoelt zijn voor de .php extensie behoor je geen sluittag te hebben. Hiermee bedoel ik dat elk bestand dat alleen PHP code bevat (zoals je bestanden waar klassen in staan) geen sluittag behoren te hebben.
Bestanden die officieel .phtml horen te heten (bestanden met php + html) behoren wel sluittags te hebben omdat het anders niet goed werkt.

Offtopic:
Dat Zend iets verbied zegt niks. Zend heeft gewoon een coding standard gemaakt en als je je daaraan wilt houden: prima. Maar het zegt verder niks over wat wel of niet mag in PHP
 
Henk PHP

Henk PHP

12/05/2012 17:37:21
Quote Anchor link
Over Zend: ik begrijp wat je zegt hoor, maar Zend is een behoorlijk grote speler en daar hechten mensen toch een bepaalde waarde aan. Dat is waarom ik Zend erbij heb betrokken. Voor de rest heb je natuurlijk gelijk over dat het niet 'verboden' is in PHP, aangezien het gewoon goede syntax is.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.