/** * install an orbit module * * @param array $params */ public function action_permissions($params) { $folders = \CCEvent::fire('ccdoctor.permissions'); if (!is_array($folders)) { $folders = array(); } // add storage directories foreach (\ClanCats::$config->get('storage.paths') as $folder) { $folders[] = $folder; } foreach ($folders as $folder) { $display_folder = \CCStr::replace($folder, array(CCROOT => '')); // create directory if not existing if (!is_dir($folder)) { if (!mkdir($folder, 0755, true)) { $this->error("doctor could not create folder at: {$display_folder}"); } } // check permissions $perm = substr(decoct(fileperms($folder)), 2); if ($perm < 755) { CCCli::line(CCCli::color($perm, 'red') . ' - ' . $display_folder . ' fixing with ' . CCCli::color('755', 'green')); if (!chmod($folder, 0755)) { CCCli::line("doctor - is not able to change permissions for: {$display_folder}", 'red'); } } elseif ($perm == 777) { CCCli::line(CCCli::color($perm, 'yellow') . ' - ' . $display_folder . ' warning! this can be dangerous.'); } else { $this->success('- ' . $display_folder, $perm); } } }
* but also some mini helpers like _dd() for var_dump and die. */ require COREPATH . 'shortcuts' . EXT; /* *--------------------------------------------------------------- * shutdown handler *--------------------------------------------------------------- * * Register our shutdown handler so we can display custom error * messages and run events before shutdown like saving the * session ect.. */ register_shutdown_function(function () { // try to run all shutdown hooks try { \CCEvent::fire('CCF.shutdown'); } catch (\Exception $e) { } // run error shutdown to catch possible errors if (class_exists("\\CCError")) { \CCError::shutdown(); } }); /* *--------------------------------------------------------------- * exception handler *--------------------------------------------------------------- * * Register our handler for uncaught exceptions, so we can * handle them on our own. */