From 3bd6891cb8f2e57da6a40835c68cfd8dca1a4aab Mon Sep 17 00:00:00 2001 From: Franck DAKIA Date: Sat, 18 Jan 2025 13:11:44 +0000 Subject: [PATCH 1/2] refactor: update config and default view --- app/Controllers/WelcomeController.php | 2 +- app/Exceptions/ErrorHandle.php | 3 +- app/Models/User.php | 10 ++++- app/Services/UserService.php | 4 +- bow | 2 +- composer.json | 8 +++- config/app.php | 4 +- config/cache.php | 6 ++- config/database.php | 2 +- config/helpers.php | 17 ++++---- config/mail.php | 4 +- config/policier.php | 2 +- config/queue.php | 2 +- config/security.php | 2 +- config/storage.php | 3 -- config/view.php | 6 +-- frontend/js/app.js | 19 ++++----- frontend/sass/app.scss | 18 ++++---- package.json | 57 ++++++++++++-------------- public/img/logo.png | Bin 0 -> 15649 bytes public/img/logo.svg | 1 - public/index.php | 2 +- seeders/_database.php | 7 ++++ seeders/users.php | 3 +- templates/layouts/default.tintin.php | 13 +++--- templates/welcome.tintin.php | 9 ++-- tests/bootstrap.php | 2 +- vite.config.js | 6 +++ webpack.mix.js | 4 -- 29 files changed, 114 insertions(+), 104 deletions(-) create mode 100644 public/img/logo.png delete mode 100644 public/img/logo.svg create mode 100644 seeders/_database.php create mode 100644 vite.config.js delete mode 100644 webpack.mix.js diff --git a/app/Controllers/WelcomeController.php b/app/Controllers/WelcomeController.php index d1df61e0..100d24d0 100644 --- a/app/Controllers/WelcomeController.php +++ b/app/Controllers/WelcomeController.php @@ -11,7 +11,7 @@ class WelcomeController extends Controller * Show index * * @param Request $request - * @return string + * @return string|null */ public function __invoke(Request $request): ?string { diff --git a/app/Exceptions/ErrorHandle.php b/app/Exceptions/ErrorHandle.php index c184e05a..ac3a2549 100644 --- a/app/Exceptions/ErrorHandle.php +++ b/app/Exceptions/ErrorHandle.php @@ -13,8 +13,9 @@ class ErrorHandle extends BaseErrorHandler * handle the error * * @param Exception $exception + * @return mixed|string */ - public function handle($exception) + public function handle(Exception $exception): mixed { if (request()->isAjax()) { return $this->json($exception); diff --git a/app/Models/User.php b/app/Models/User.php index bc54caad..3d691f53 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -2,9 +2,15 @@ namespace App\Models; -use Bow\Auth\Authentication as AuthenticatableModel; +use Bow\Auth\Authentication as AuthenticationModel; -class User extends AuthenticatableModel +/** + * @property mixed|string $name + * @property mixed|string $lastname + * @property mixed|string $email + * @property bool|mixed|string $password + */ +class User extends AuthenticationModel { /** * The list of hidden field when toJson is called diff --git a/app/Services/UserService.php b/app/Services/UserService.php index 88049267..69b03d54 100644 --- a/app/Services/UserService.php +++ b/app/Services/UserService.php @@ -25,7 +25,7 @@ public function __construct(User $user) /** * Get all available users * - * @return Collection + * @return Collection|null */ public function fetchAll(): ?Collection { @@ -38,7 +38,7 @@ public function fetchAll(): ?Collection * @param string $name * @param string $lastname * @param string $email - * @return User + * @return User|null */ public function create(string $name, string $lastname, string $email): ?User { diff --git a/bow b/bow index 03da0aa9..b1e4e9ca 100755 --- a/bow +++ b/bow @@ -7,7 +7,7 @@ use Bow\Console\Console; // Register The Auto Loader if (!file_exists(__DIR__."/vendor/autoload.php")) { - die("Please install the depencencies with 'composer update'"); + die("Please install the dependencies with 'composer update'"); } require __DIR__."/vendor/autoload.php"; diff --git a/composer.json b/composer.json index b6110cde..c06c5ce8 100644 --- a/composer.json +++ b/composer.json @@ -16,8 +16,12 @@ }, "require": { "php": "^8.1", - "bowphp/framework": "^5.0", - "bowphp/policier": "^3.0" + "bowphp/framework": "^5.x-dev", + "bowphp/policier": "^3.0", + "ext-pdo": "*", + "ext-redis": "*", + "ext-curl": "*", + "ext-ftp": "*" }, "require-dev": { "phpunit/phpunit": "^9", diff --git a/config/app.php b/config/app.php index 8c5b8bec..15237eaf 100644 --- a/config/app.php +++ b/config/app.php @@ -7,10 +7,10 @@ 'name' => app_env('APP_NAME', 'Bow Application'), /** - * The auto csrf enable csrf protected automaticly + * The auto csrf enable csrf protected automatically * on POST, DELETE, PUT */ - "auto_csrf" => app_env("APP_AUTO_CSRF", true), + "auto_csrf" => (bool) app_env("APP_AUTO_CSRF", true), /** * Root of the application diff --git a/config/cache.php b/config/cache.php index 581aff29..9dddd72c 100644 --- a/config/cache.php +++ b/config/cache.php @@ -8,7 +8,8 @@ // The filesystem connection "file" => [ "driver" => "file", - "path" => __DIR__ . '/../var/cache' + "path" => __DIR__ . '/../var/cache', + "prefix" => "", ], // The database connection @@ -16,13 +17,14 @@ "driver" => "database", "connection" => app_env('DB_DEFAULT', 'mysql'), "table" => "caches", + "prefix" => "", ], // The redis connection "redis" => [ 'driver' => 'redis', 'database' => app_env('REDIS_CACHE_DB', 5), - "prefix" => "__app__", + "prefix" => "", ] ] ]; diff --git a/config/database.php b/config/database.php index a47a1658..209e667a 100644 --- a/config/database.php +++ b/config/database.php @@ -19,7 +19,7 @@ /** * The database on which the default application will connect. * - * The database by default, it is on this data base that will connects + * The database by default, it is on this database that will connect * automatically. So you absolutely must not edit the default key. * * In the opposite box you must execute the code in each route. diff --git a/config/helpers.php b/config/helpers.php index 6790b529..3cd06063 100644 --- a/config/helpers.php +++ b/config/helpers.php @@ -2,12 +2,13 @@ if (!function_exists('mix')) { /** - * Get mixfile chunkhash version + * Get mix file chunk hash version * * @param string $path * @return string + * @throws Exception */ - function mix($path) + function mix(string $path) { $manifest = config('app.mixfile_path'); @@ -34,7 +35,7 @@ function mix($path) * @param string $path * @return string */ - function public_path($path = '') + function public_path(string $path = ''): string { return __DIR__ . '/../public/' . ltrim($path, '/'); } @@ -47,7 +48,7 @@ function public_path($path = '') * @param string $path * @return string */ - function frontend_path($path = '') + function frontend_path(string $path = '') { return __DIR__ . '/../frontend/' . ltrim($path, '/'); } @@ -60,7 +61,7 @@ function frontend_path($path = '') * @param string $path * @return string */ - function storage_path($path = '') + function storage_path(string $path = '') { return __DIR__ . '/../var/' . ltrim($path, '/'); } @@ -72,7 +73,7 @@ function storage_path($path = '') * * @return string */ - function base_path($path = '') + function base_path($path = ''): string { return rtrim(rtrim(realpath(__DIR__ . '/..'), '/') . '/' . $path, '/'); } @@ -86,7 +87,7 @@ function base_path($path = '') * @param int $len * @return string */ - function gen_slix($len = 4) + function gen_slix(int $len = 4): string { return substr(str_shuffle(uniqid()), 0, $len); } @@ -98,7 +99,7 @@ function gen_slix($len = 4) * * @return string */ - function gen_unique_id() + function gen_unique_id(): string { $id = base_convert(microtime(false), 10, 36); diff --git a/config/mail.php b/config/mail.php index a98b81cc..29eb0fe2 100644 --- a/config/mail.php +++ b/config/mail.php @@ -20,7 +20,7 @@ "from" => "sender@example.com", /** - * SMTP authentification + * SMTP authentication */ "smtp" => [ "hostname" => app_env("SMTP_HOSTNAME"), @@ -33,7 +33,7 @@ ], /** - * SMTP authentification + * SMTP authentication */ "ses" => [ "profile" => app_env("SES_PROFILE", "default"), diff --git a/config/policier.php b/config/policier.php index a9b86150..3de15a3e 100644 --- a/config/policier.php +++ b/config/policier.php @@ -1,7 +1,7 @@ app_env("APP_JWT_SECRET", "FivwuTmpJlwfXB/WMjAyMS0wMS0yNCAyMDozMTozMTE2MTE1MjAyOTEuMDEwOA=="), + "signkey" => app_env("APP_JWT_SECRET"), /** * Token expiration time diff --git a/config/queue.php b/config/queue.php index 715454a5..c85750b6 100644 --- a/config/queue.php +++ b/config/queue.php @@ -2,7 +2,7 @@ return [ /** - * The defaut connexion + * The default connexion */ "default" => "beanstalkd", diff --git a/config/security.php b/config/security.php index 88dc8c2f..b0f6a2f3 100644 --- a/config/security.php +++ b/config/security.php @@ -30,7 +30,7 @@ ], /** - * When using token. This is the life time of a token. + * When using token. This is the lifetime of a token. * It is strongly advised to program with tokens. */ 'token_expirate_time' => 50000 diff --git a/config/storage.php b/config/storage.php index 0833b076..61d31437 100644 --- a/config/storage.php +++ b/config/storage.php @@ -30,11 +30,8 @@ 'password' => app_env('FTP_PASSWORD'), 'username' => app_env('FTP_USERNAME'), 'port' => app_env('FTP_PORT', 21), - // The basic folder of the server 'root' => app_env('FTP_STARTROOT', null), - // A `true` to activate a secure connection. 'tls' => app_env('FTP_TLS', false), - // Connection waiting time 'timeout' => app_env('FTP_TIMEOUT', 50) ], diff --git a/config/view.php b/config/view.php index 252bc558..22c5f72a 100644 --- a/config/view.php +++ b/config/view.php @@ -3,7 +3,7 @@ return [ /** * The views directory. It is in this repertory that you will put all your views. - * The views must have the instantion you have defined in 'template_extension' + * The views must have the installation you have defined in 'template_extension' * if no error will be launched */ 'path' => __DIR__ . '/../templates', @@ -17,7 +17,7 @@ * Template supported twig, php, tintin * Define the template name. * Example: define twig with package twig/twig for define twig template - * Bow Framework support actualy twig, tintin, php + * Bow Framework support actually twig, tintin, php */ 'engine' => 'tintin', @@ -36,7 +36,7 @@ /** * Additional option */ - 'aditionnal_options' => [ + 'additional_options' => [ // 'auto_reload_cache' => true ] ]; diff --git a/frontend/js/app.js b/frontend/js/app.js index a139db8b..a326af64 100644 --- a/frontend/js/app.js +++ b/frontend/js/app.js @@ -1,7 +1,6 @@ -/** - * import Vue from "vue" - * import Example from "./Example.vue" - */ +// import Vue from "vue" +// import Example from "./Example.vue" + window.axios = require('axios'); window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; @@ -16,10 +15,8 @@ if (token) { */ require('./Example.jsx'); -/* - * Vue.component('example', Example); - * - * new Vue({ - * el: "#main" - * }); - */ +// Vue.component('example', Example); + +// new Vue({ +// el: "#main" +// }); diff --git a/frontend/sass/app.scss b/frontend/sass/app.scss index e7f35b52..b74955d9 100644 --- a/frontend/sass/app.scss +++ b/frontend/sass/app.scss @@ -1,9 +1,9 @@ -@import "variables"; - -#main { - position: relative; - margin: 10% auto; - width: 550px; - text-align: center; - font-family: $font-family; -} +@use "variables"; + +#main { + position: relative; + margin: 10% auto; + width: 550px; + text-align: center; + font-family: $font-family; +} diff --git a/package.json b/package.json index adb06129..88d620f7 100644 --- a/package.json +++ b/package.json @@ -1,32 +1,29 @@ { - "scripts": { - "dev": "npm run development", - "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", - "prod": "npm run production", - "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", - "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", - "hot": "cross-env NODE_ENV=development webpack-dev-server --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", - "format": "composer run-script lint" - }, - "dependencies": { - "axios": ">=0.21.1", - "babel-loader": "^8.0.4", - "bootstrap": "^4.0.0", - "cross-env": "^5.1", - "css-loader": "^2.0.2", - "jquery": "^3.2", - "laravel-mix": "^6.0.49", - "lodash": "^4.17.5", - "popper.js": "^1.12", - "react": "^16.7.0", - "react-dom": "^16.7.0", - "resolve-url-loader": "^5.0.0", - "sass": "^1.15.2", - "sass-loader": "^7.1.0", - "vue": "^2.5.17" - }, - "devDependencies": { - "@babel/preset-react": "^7.0.0", - "vue-template-compiler": "^2.5.21" - } + "private": true, + "version": "0.0.1", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc -b && vite build", + "lint": "eslint .", + "preview": "vite preview" + }, + "dependencies": { + "axios": "^1.7.9", + "react": "^18.3.1", + "react-dom": "^18.3.1" + }, + "devDependencies": { + "@eslint/js": "^9.17.0", + "@types/react": "^18.3.18", + "@types/react-dom": "^18.3.5", + "@vitejs/plugin-react": "^4.3.4", + "eslint": "^9.17.0", + "eslint-plugin-react-hooks": "^5.0.0", + "eslint-plugin-react-refresh": "^0.4.16", + "globals": "^15.14.0", + "typescript": "~5.6.2", + "typescript-eslint": "^8.18.2", + "vite": "^6.0.5" + } } diff --git a/public/img/logo.png b/public/img/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..dd384b515ce2b2b8b038b9f5585bfcb9586f01b2 GIT binary patch literal 15649 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 F|6dSzg=GK$ literal 0 HcmV?d00001 diff --git a/public/img/logo.svg b/public/img/logo.svg deleted file mode 100644 index 0739265c..00000000 --- a/public/img/logo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/index.php b/public/index.php index 8475f0ee..0783293c 100644 --- a/public/index.php +++ b/public/index.php @@ -11,7 +11,7 @@ // Register The Auto Loader if (!file_exists(__DIR__ . "/../vendor/autoload.php")) { - die("Please install the depencencies with 'composer update'"); + die("Please install the dependencies with 'composer update'"); } require __DIR__."/../vendor/autoload.php"; diff --git a/seeders/_database.php b/seeders/_database.php new file mode 100644 index 00000000..aba6a35c --- /dev/null +++ b/seeders/_database.php @@ -0,0 +1,7 @@ + - %inject('title', 'It\'s Worked') -