Path: blob/master/src/applications/config/check/PhabricatorExtensionsSetupCheck.php
12256 views
<?php12final class PhabricatorExtensionsSetupCheck extends PhabricatorSetupCheck {34public function getDefaultGroup() {5return self::GROUP_PHP;6}78public function isPreflightCheck() {9return true;10}1112protected function executeChecks() {13// TODO: Make 'mbstring' a soft requirement.1415$required = array(16'hash',17'json',18'openssl',19'mbstring',20'ctype',2122// There is a tiny chance we might not need this, but a significant23// number of applications require it and it's widely available.24'curl',25);2627$need = array();28foreach ($required as $extension) {29if (!extension_loaded($extension)) {30$need[] = $extension;31}32}3334if (!extension_loaded('mysqli') && !extension_loaded('mysql')) {35$need[] = 'mysqli or mysql';36}3738if (!$need) {39return;40}4142$message = pht('Required PHP extensions are not installed.');4344$issue = $this->newIssue('php.extensions')45->setIsFatal(true)46->setName(pht('Missing Required Extensions'))47->setMessage($message);4849foreach ($need as $extension) {50$issue->addPHPExtension($extension);51}52}53}545556