mirror of
https://github.com/grocy/grocy.git
synced 2026-04-07 05:16:15 +02:00
Merge branch 'master' into simplify-release-asset-naming
This commit is contained in:
commit
ad2bee88d7
|
|
@ -2,4 +2,5 @@
|
||||||
- Fixed a PHP notice on the recipes page when there are no recipes (thanks @mrunkel)
|
- Fixed a PHP notice on the recipes page when there are no recipes (thanks @mrunkel)
|
||||||
|
|
||||||
### General & other improvements
|
### General & other improvements
|
||||||
|
- Prerequisites (PHP extensions, critical files/folders) will now be checked and properly reported if there are problems (thanks @Forceu)
|
||||||
- Improved the the overview pages on mobile devices (main column was hidden) (thanks @Mik-)
|
- Improved the the overview pages on mobile devices (main column was hidden) (thanks @Mik-)
|
||||||
|
|
|
||||||
62
helpers/PrerequisiteChecker.php
Normal file
62
helpers/PrerequisiteChecker.php
Normal file
|
|
@ -0,0 +1,62 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
class ERequirementNotMet extends Exception { }
|
||||||
|
|
||||||
|
const REQUIRED_PHP_EXTENSIONS = array('fileinfo', 'pdo_sqlite', 'gd');
|
||||||
|
|
||||||
|
class PrerequisiteChecker
|
||||||
|
{
|
||||||
|
public function checkRequirements()
|
||||||
|
{
|
||||||
|
self::checkForConfigFile();
|
||||||
|
self::checkForConfigDistFile();
|
||||||
|
self::checkForComposer();
|
||||||
|
self::checkForYarn();
|
||||||
|
self::checkForPhpExtensions();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private function checkForConfigFile()
|
||||||
|
{
|
||||||
|
if (!file_exists(__DIR__ . '/../data/config.php'))
|
||||||
|
{
|
||||||
|
throw new ERequirementNotMet('/data/config.php not found. Have you copied config-dist.php to the data directory and renamed it to config.php?');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function checkForConfigDistFile()
|
||||||
|
{
|
||||||
|
if (!file_exists(__DIR__ . '/../config-dist.php'))
|
||||||
|
{
|
||||||
|
throw new ERequirementNotMet('config-dist.php not found. Please do not remove this file.');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function checkForComposer()
|
||||||
|
{
|
||||||
|
if (!file_exists(__DIR__ . '/../vendor/autoload.php'))
|
||||||
|
{
|
||||||
|
throw new ERequirementNotMet('/vendor/autoload.php not found. Have you run Composer?');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function checkForYarn()
|
||||||
|
{
|
||||||
|
if (!file_exists(__DIR__ . '/../public/node_modules'))
|
||||||
|
{
|
||||||
|
throw new ERequirementNotMet('/public/node_modules not found. Have you run Yarn?');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function checkForPhpExtensions()
|
||||||
|
{
|
||||||
|
$loadedExtensions = get_loaded_extensions();
|
||||||
|
foreach (REQUIRED_PHP_EXTENSIONS as $extension)
|
||||||
|
{
|
||||||
|
if (!in_array($extension, $loadedExtensions))
|
||||||
|
{
|
||||||
|
throw new ERequirementNotMet("PHP module '{$extension}' not installed, but required.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,3 +1,14 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
require_once __DIR__ . '/../helpers/PrerequisiteChecker.php';
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
(new PrerequisiteChecker)->checkRequirements();
|
||||||
|
}
|
||||||
|
catch (ERequirementNotMet $ex)
|
||||||
|
{
|
||||||
|
die('Unable to run grocy: ' . $ex->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
require_once __DIR__ . '/../app.php';
|
require_once __DIR__ . '/../app.php';
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user