Skip to content

Commit

Permalink
fix name
Browse files Browse the repository at this point in the history
  • Loading branch information
AmirHkrg committed Jul 13, 2023
1 parent c4d325e commit 98d5404
Show file tree
Hide file tree
Showing 27 changed files with 3,473 additions and 1 deletion.
10 changes: 10 additions & 0 deletions App/Controller/Api/api.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php

namespace Bot\App\Controller\Api;

use Bot\Core\http\RegisterApi;

class Api extends RegisterApi
{

}
10 changes: 10 additions & 0 deletions App/Model/User.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php

namespace Bot\App\Model;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{

}
8 changes: 8 additions & 0 deletions App/Resources/bot.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?php

use Bot\Core\Bot;
use Bot\Core\Request;

$bot = new Bot();

// Code ...
49 changes: 49 additions & 0 deletions Core/Cli/Action/apiMaker.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<?php

namespace Bot\Core\Cli\Action;

use Bot\Core\Cli\Error\Logger;

class ApiMaker
{
private mixed $cmd;

public function __construct()
{
global $argv;
$this->cmd = $argv;
}

public function createApi(): void
{
if (!isset($this->cmd[2])) {
Logger::status('Warning', 'Enter the Api name!', 'warning');
return;
}

$apiPage = str_replace('&&&', $this->cmd[2], file_get_contents('Core/Cli/Layout/api.txt'));

$fileName = 'App/Controller/Api/' . $this->cmd[2] . '.php';
if (file_exists($fileName)) {
Logger::warning('Api is already exist!');
} else {
file_put_contents($fileName, $apiPage);
Logger::success('Api Created Successfully!');
}
}

public function removeApi(): void
{
if (!isset($this->cmd[2])) {
Logger::status('Warning', 'Enter the Api name!', 'warning');
return;
}

if (file_exists("App/Controller/Api/{$this->cmd[2]}.php")) {
unlink("App/Controller/Api/{$this->cmd[2]}.php");
Logger::status('Success', 'Api deleted successfully!');
} else {
Logger::status('Failed', 'Api is not exist!', 'failed');
}
}
}
106 changes: 106 additions & 0 deletions Core/Cli/Action/calling.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
<?php

namespace Bot\Core\Cli\Action;

require_once 'Bootstrap/bootstrap.php';

use Bot\Core\Cli\Kernel;

$kernel = new Kernel();
//-----------------------------------------------------------------
$kernel->call('make:model', function () {
$database = new DatabaseMaker();
$database->createModel();
});
//-----------------------------------------------------------------
$kernel->call('make:resource', function () {
$resource = new ResourceMaker();
$resource->createResources();
});

$kernel->call('remove:resource', function () {
$resource = new ResourceMaker();
$resource->removeResources();
});
//-----------------------------------------------------------------
$kernel->call('make:api', function () {
$resource = new ApiMaker();
$resource->createApi();
});

$kernel->call('remove:api', function () {
$resource = new ApiMaker();
$resource->removeApi();
});
//-----------------------------------------------------------------
$kernel->call('serve', function () {
$server = new ServerMaker();
$server->serve();
});

$kernel->call('start:apiserver', function () {
$server = new ServerMaker();
$server->runApiServer();
});

$kernel->call('start:openswoole', function () {
$server = new ServerMaker();
$server->runOpenswoole();
});

$kernel->call('setWebhook', function () {
$server = new ServerMaker();
$server->setWebhook();
});

$kernel->call('deleteWebhook', function () {
$server = new ServerMaker();
$server->deleteWebhook();
});
//-----------------------------------------------------------------
$kernel->call('get:eloquent', function () {
$installer = new Installer();
$installer->install_Eloquent();
});

$kernel->call('remove:eloquent', function () {
$installer = new Installer();
$installer->uninstall_Eloquent();
});

$kernel->call('get:amphp', function () {
$installer = new Installer();
$installer->install_Amphp();
});

$kernel->call('remove:amphp', function () {
$installer = new Installer();
$installer->uninstall_Amphp();
});

$kernel->call('get:openswoole', function () {
$installer = new Installer();
$installer->install_Openswoole();
});

$kernel->call('remove:openswoole', function () {
$installer = new Installer();
$installer->uninstall_Openswoole();
});

$kernel->call('get:redis', function () {
$installer = new Installer();
$installer->install_Redis();
});

$kernel->call('remove:redis', function () {
$installer = new Installer();
$installer->uninstall_Redis();
});

$kernel->call('clear:vendor', function () {
$installer = new Installer();
$installer->clear_vendor();
});
//-----------------------------------------------------------------
$kernel->shutdown();
33 changes: 33 additions & 0 deletions Core/Cli/Action/databaseMaker.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<?php

namespace Bot\Core\Cli\Action;

use Bot\Core\Cli\Error\Logger;

class DatabaseMaker
{
private mixed $cmd;

public function __construct()
{
global $argv;
$this->cmd = $argv;
}

public function createModel(): void
{
if (!isset($this->cmd[2])) {
Logger::status('Warning', 'Enter the Model name!', 'warning');
return;
}

$migrationPage = str_replace('&&&', $this->cmd[2], file_get_contents('Core/Cli/Layout/mysqlModel.txt'));
$fileName = 'App/Model/' . $this->cmd[2] . '.php';
if (file_exists($fileName)) {
Logger::warning('Model is already exist!');
} else {
file_put_contents($fileName, $migrationPage);
Logger::success('Mysql Model Created Successfully!');
}
}
}
169 changes: 169 additions & 0 deletions Core/Cli/Action/installer.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,169 @@
<?php

namespace Bot\Core\Cli\Action;

use Bot\Core\Cli\Error\Logger;
use Symfony\Component\Process\Process;

class Installer
{
private mixed $cmd;

public function __construct()
{
global $argv;
$this->cmd = $argv;
}

public function install_Eloquent(): void
{
if (file_exists('vendor/illuminate/database')){
Logger::status('Failed', 'Database Eloquent already installed!', 'failed', true);
}

$command = new Process(["composer", "require", "illuminate/database", "illuminate/events", "doctrine/dbal"]);
$command->start();
$command->wait();
if ($command->isSuccessful()) {
Logger::success('Database Eloquent Installed Successfully!');
}else{
Logger::failed('An error occurred!');
}
}

public function uninstall_Eloquent(): void
{
if (!file_exists('vendor/illuminate/database')){
Logger::status('Failed', 'Database Eloquent not installed!', 'failed', true);
}

$command = new Process(["composer", "remove", "illuminate/database", "illuminate/events", "doctrine/dbal"]);
$command->start();
$command->wait();
if ($command->isSuccessful()) {
Logger::success('Database Eloquent Removed Successfully!');
}else{
Logger::failed('An error occurred!');
}
}

public function install_Amphp(): void
{
if (file_exists('vendor/amphp')){
Logger::status('Failed', 'AMPHP already installed!', 'failed', true);
}

$command = new Process(["composer", "require", "amphp/http-client"]);
$command->start();
$command->wait();
if ($command->isSuccessful()) {
Logger::success('AMPHP Installed Successfully!');
}else{
Logger::failed('An error occurred!');
}
}

public function uninstall_Amphp(): void
{
if (!file_exists('vendor/amphp')){
Logger::status('Failed', 'AMPHP not installed!', 'failed', true);
}

$command = new Process(["composer", "remove", "amphp/http-client"]);
$command->start();
$command->wait();
if ($command->isSuccessful()) {
Logger::success('AMPHP Removed Successfully!');
}else{
Logger::failed('An error occurred!');
}
}

public function install_Openswoole(): void
{
if (file_exists('vendor/openswoole')){
Logger::status('Failed', 'OpenSwoole already installed!', 'failed', true);
}

$command = new Process(["composer", "require", "openswoole/core"]);
$command->start();
$command->wait();
if ($command->isSuccessful()) {
Logger::success('OpenSwoole Installed Successfully!');
}else{
Logger::failed('Failed to install OpenSwoole!');
if (str_contains($command->getErrorOutput(), 'requires ext-openswoole')){
Logger::message('Make sure the openswoole extension is installed!');
}else{
Logger::message('Make sure you are connected to the network! ');
Logger::message('If the problem is not solved, directly use the command');
Logger::message(' >> composer require openswoole/core ');
}
}
}

public function uninstall_Openswoole(): void
{
if (!file_exists('vendor/openswoole')){
Logger::status('Failed', 'OpenSwoole not installed!', 'failed', true);
}

$command = new Process(["composer", "remove", "openswoole/core"]);
$command->start();
$command->wait();
if ($command->isSuccessful()) {
Logger::success('OpenSwoole Removed Successfully!');
}else{
Logger::failed('An error occurred!');
}
}

public function install_Redis(): void
{
$command = new Process(["composer", "require", "ext-redis:*"]);
$command->start();
$command->wait();
if ($command->isSuccessful()) {
Logger::success('Ext-Redis Installed Successfully!');
}else{
Logger::failed('Failed to install Ext-Redis!');
}
}

public function uninstall_Redis(): void
{
$command = new Process(["composer", "remove", "ext-redis:*"]);
$command->start();
$command->wait();
if ($command->isSuccessful()) {
Logger::success('Ext-Redis Removed Successfully!');
}else{
Logger::failed('An error occurred!');
}
}

public function clear_vendor(): void
{
$command = ["composer", "remove"];
if (file_exists('vendor/openswoole')){
$command[] = "openswoole/core";
}

if (file_exists('vendor/amphp')){
$command[] = "amphp/http-client";
}

if (file_exists('vendor/illuminate/database')){
$command = array_merge($command, ["illuminate/database", "illuminate/events", "doctrine/dbal"]);
}

$command = new Process($command);
$command->start();
$command->wait();
if ($command->isSuccessful()) {
Logger::success('Vendor was successfully cleared!');
}else{
Logger::failed('An error occurred!');
}
}
}
Loading

0 comments on commit 98d5404

Please sign in to comment.