. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License version 3. * * In accordance with Section 7(b) of the GNU Affero General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ namespace Espo\Core\ApplicationRunners; use Espo\Core\Application\Runner; use Espo\Core\Utils\Preload as PreloadUtil; use Throwable; /** * Runs a preload. * * @see https://www.php.net/manual/en/opcache.preloading.php */ class Preload implements Runner { use Cli; /** * @throws Throwable */ public function run(): void { $preload = new PreloadUtil(); try { $preload->process(); } catch (Throwable $e) { $this->processException($e); throw $e; } $count = $preload->getCount(); echo "Success." . PHP_EOL; echo "Files loaded: " . $count . "." . PHP_EOL; } protected function processException(Throwable $e): void { echo "Error occurred." . PHP_EOL; $msg = $e->getMessage(); if ($msg) { echo "Message: $msg" . PHP_EOL; } $file = $e->getFile(); if ($file) { echo "File: $file" . PHP_EOL; } echo "Line: " . $e->getLine() . PHP_EOL; } }