Project

General

Profile

Bug #26798 ยป ExtbaseRequirementsCheck.php

Michel Georgy, 2011-05-13 09:56

 
<?php
/***************************************************************
* Copyright notice
*
* (c) 2009 Sebastian Kurf?rst <sebastian@typo3.org>
* All rights reserved
*
* This class is a backport of the corresponding class of FLOW3.
* All credits go to the v5 team.
*
* This script is part of the TYPO3 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* The GNU General Public License can be found at
* http://www.gnu.org/copyleft/gpl.html.
*
* This script is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/

/**
* A checker which hooks into the backend module "Reports" checking whether there
* is a PHP accelerator in place which strips off Doc Comments.
*
* @package Extbase
* @subpackage Utility
* @version $Id: ExtbaseRequirementsCheck.php 2708 2010-11-10 18:56:01Z bwaidelich $
*/
class Tx_Extbase_Utility_ExtbaseRequirementsCheck implements tx_reports_StatusProvider {

/**
* Compiles a collection of system status checks as a status report.
*
* @see typo3/sysext/reports/interfaces/tx_reports_StatusProvider::getStatus()
*/
public function getStatus() {
$reports = array(
'docCommentsShouldBePreserved' => $this->checkIfDocCommentsArePreserved()
);

return $reports;
}

/**
* Check whether doc comments are preserved or stipped off PHP by PHP accelerators.
*
* @return tx_reports_reports_status_Status
*/
protected function checkIfDocCommentsArePreserved() {

$method = new ReflectionMethod('Tx_Extbase_Core_Bootstrap', 'initialize');

if(strlen($method->getDocComment()) > 0) {
$value = 'Preserved';
$message = '';
$status = tx_reports_reports_status_Status::OK;
} else {
$value = 'Stripped';
$message = 'The PHP Doc comments are stripped from the PHP files. All extensions based on Extbase will not work correctly.<br />Are you using a PHP Accelerator like eAccelerator? If you use eAccelerator, please recompile it with the compile flag <b>--with-eaccelerator-doc-comment-inclusion</b>. See <a href="http://eaccelerator.net/ticket/229">the eAccelerator bugtracker</a> for more details.';
$status = tx_reports_reports_status_Status::ERROR;
}
return t3lib_div::makeInstance('tx_reports_reports_status_Status',
'PHP Doc Comments',
$value,
$message,
$status
);
}
}
?>
    (1-1/1)