⚝
One Hat Cyber Team
⚝
Your IP:
172.22.0.1
Server IP:
151.80.20.34
Server:
Linux 794f04d97d5e 5.15.0-143-generic #153-Ubuntu SMP Fri Jun 13 19:10:45 UTC 2025 x86_64
Server Software:
Apache/2.4.62 (Debian)
PHP Version:
8.2.28
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
var
/
www
/
html
/
vendor
/
munafio
/
chatify
/
src
/
Console
/
View File Name :
InstallChatify.php
<?php namespace Chatify\Console; use Illuminate\Console\Command; use Illuminate\Support\Facades\Artisan; use Illuminate\Support\Facades\File; class InstallChatify extends Command { protected $signature = 'chatify:install'; protected $description = 'Install Chatify package'; private $isV8; 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('/../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('Migrating to database...'); Artisan::call('migrate'); $this->info('[✓] Migrated.'); $this->line('----------'); $this->line('Creating storage symlink...'); Artisan::call('storage:link'); $this->info('[✓] Storage linked.'); $this->line('----------'); $this->info('[✓] Chatify installed successfully'); } 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); } private function process($target, $path) { $this->line('Publishing '.$target.'...'); if (!File::exists($path)) { $this->publish($target); $this->info('[✓] '.$target.' published.'); } else { if ($this->shouldOverwrite($target)) { $this->line('Overwriting '.$target.'...'); $this->publish($target,true); } else { $this->line('[-] Ignored, The existing '.$target.' was not overwritten'); } } } private function shouldOverwrite($target) { return $this->confirm( $target.' already exists. Do you want to overwrite it?', false ); } private function publish($tag, $forcePublish = false) { $params = [ '--provider' => "Chatify\ChatifyServiceProvider", '--tag' => 'chatify-'.$tag ]; if ($forcePublish === true) { $params['--force'] = ''; } $this->call('vendor:publish', $params); } }