[Package] GP247/core

Sửa trên GitHub
  _____  _____     ___  _  _   _____ 
 / ____|  __ \   |__ \| || | |___  |
| |  __| |__) |     ) | || |_   / / 
| | |_ |  ___/     / /|__   _| / /  
| |__| | |        / /_   | |  / /   
 \_____|_|       |____|  |_| /_/    

🌐 Ngôn ngữ: 🇻🇳 Tiếng Việt (hiện tại) · 🇬🇧 English

Cài đặt core (khi đã có laravel):

composer require gp247/core

Trang chủ | Tài liệu chính thức | Skill agent chính thức | Fanpage chính thức

Tổng lượt tải Phiên bản ổn định mới nhất Giấy phép Ask DeepWiki

Giới thiệu về GP247

GP247 là một hệ thống mã nguồn mở mạnh mẽ, an toàn, linh hoạt, thân thiện với AI agent, được xây dựng trên nền tảng Laravel.

Các thành phần chính trong hệ sinh thái của GP247:

  • [Package] GP247/core: Là core của toàn bộ hệ sinh thái. GP247/core có thể hoạt động độc lập như 1 laravel admin.
  • [Package] GP247/front: Gói cung cấp các chức năng cơ bản cho một cms của doanh nghiệp.
  • [Package] GP247/shop: Cung cấp đầy đủ chức năng của một website bán hàng.

[Project] S-Cart = GP247/core + GP247/front + GP247/shop

Core Laravel:

GP247 3.x

Core laravel framework 13.x

Cấu trúc website sử dụng GP247

Website-folder/
|
├── app
│     └── GP247
│           ├── Core(+) //Tùy chỉnh controller của Core
│           ├── Helpers(+) //Tự động tải Helpers/*.php
│           ├── Plugins(+) //Sử dụng `php artisan gp247:make-plugin --name=TenPlugin`
  //(NẾU bạn đã cài đặt gp247/front)//
│           ├── Front(+) //Tùy chỉnh controller của Front 
  //(NẾU bạn đã cài đặt gp247/shop)//
│           ├── Shop(+) //Tùy chỉnh controller của Shop 
│           └── Templates(+) //Sử dụng `php artisan gp247:make-template --name=TenTemplate`
├── public
│     └── GP247
│           ├── Core(+)
│           ├── Plugins(+)
  //(NẾU bạn đã cài đặt gp247/front)//
│           └── Templates(+)
├── resources
│            └── views/vendor
│                           |── gp247-admin(+) //Tùy chỉnh view core
│                           |── gp247-front-admin(+) //(NẾU bạn đã cài đặt gp247/front)//
│                           └── gp247-shop-admin(+) //(NẾU bạn đã cài đặt gp247/shop)//
├── vendor
│     ├── gp247/core
│     ├── gp247/front
│     └── gp247/shop
├── .env
│     └── GP247_ACTIVE=1 //BẬT|TẮT gp247
└──...

Hướng dẫn cài đặt nhanh

  • Bước 1: Chuẩn bị source Laravel

    Tham khảo lệnh:

    composer create-project laravel/laravel website-folder

  • Bước 2: Cài đặt gói gp247/core

    Di chuyển vào thư mục Laravel (trong ví dụ này là website-folder), và chạy lệnh:

    composer require gp247/core

  • Bước 3: Kiểm tra cấu hình trong file .env

    Đảm bảo thông tin cấu hình database và APP_KEY trong file .env đã đầy đủ.

    Nếu APP_KEY chưa được thiết lập, sử dụng lệnh sau để tạo:

    php artisan key:generate

  • Bước 4: Cấu hình database

Mặc định, GP247 sử dụng mysql. Cấu hình sẽ được lưu trong file .env như sau:

  DB_CONNECTION=mysql
  DB_HOST=127.0.0.1
  DB_PORT=3306
  DB_DATABASE=gp247
  DB_USERNAME=root
  DB_PASSWORD=

Nếu bạn muốn sử dụng sqlite để kiểm tra nhanh, vui lòng thay đổi connection trong file .env thành sqlite, và comment các dòng DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD.

    DB_CONNECTION=sqlite
    #DB_HOST=127.0.0.1
    #DB_PORT=3306
    #DB_DATABASE=gp247
    #DB_USERNAME=root
    #DB_PASSWORD=
  • Bước 5: Khởi tạo gp247

    Chạy lệnh:

    php artisan gp247:install

    gp247:install tự động phát hiện các gói GP247 đang có và cài theo thứ tự (core [+front] [+shop]); mặc định sẽ hỏi xác nhận, thêm --force=1 để cài không cần tương tác.

  • Bước 6: Thêm xử lý lỗi

    Để thêm xử lý lỗi tùy chỉnh cho ứng dụng của bạn, hãy mở file bootstrap/app.php và thêm đoạn mã sau vào hàm withExceptions:

          // GP247 add new
          $exceptions->report(function (\Throwable $e) {
              try {
                  if (function_exists('gp247_handle_exception')) {
                      gp247_handle_exception($e);
                  }
              } catch (\Throwable $inner) {
                  \Log::error($e->getMessage(), ['exception' => $e]);
              }
          });
    

    Đoạn mã này sẽ giúp bạn xử lý các ngoại lệ thông qua hàm gp247_handle_exception nếu hàm này tồn tại.

Thông tin hữu ích:

📖 Tham chiếu dòng lệnh đầy đủ. Các lệnh dưới đây chỉ là những lệnh thông dụng nhất. Xem tất cả lệnh artisan của GP247 cùng tùy chọn và ví dụ trong tài liệu chính thức: Tiếng Việt · English.

Để xem phiên bản GP247

php artisan gp247:info

Cập nhật gp247

Cập nhật gói bằng lệnh:

composer update gp247/core

Sau đó chạy lệnh refresh an toàn, không phá dữ liệu (cập nhật core, cập nhật schema shop nếu có module shop, và rebuild cache):

php artisan gp247:update

Tùy chọn — cập nhật lại file ngôn ngữ. Mặc định gp247:update giữ nguyên bản dịch của bạn. Thêm --overwrite-lang để kéo bản dịch mới nhất, ghi đè mọi chuỗi ngôn ngữ bạn đã sửa:

php artisan gp247:update --overwrite-lang

Tùy chọn — cập nhật lại asset/view đã publish lên bản mới nhất. composer update chỉ cập nhật package trong vendor/; các file đã publish ra public/GP247resources/views/vendor/gp247-admin không tự động được ghi đè. Cách gọn nhất là dùng option tùy chọn --publish=<tokens> của gp247:update (mặc định không publish gì). Chỉ core-public là an toàn (asset admin đã build); các token view sẽ ghi đè tùy biến của bạn, nên hãy backup trước:

php artisan gp247:update --publish=core-public // an toàn: làm mới CSS/JS admin

php artisan gp247:update --publish=core-public,core-view // đồng thời ghi đè view admin (PHÁ DỮ LIỆU)

gp247:update không có cờ --force — tự gõ token phá-dữ-liệu chính là đồng thuận, và chạy tương tác vẫn cảnh báo và hỏi xác nhận.

Hoặc publish từng tag thủ công bằng vendor:publish --force:

php artisan vendor:publish --tag=gp247:core-public --force // -> public/GP247 (build admin: CSS/JS, ...)

php artisan vendor:publish --tag=gp247:core-view --force // -> resources/views/vendor/gp247-admin

NẾU bạn đã cài đặt gp247/front, publish lại thêm asset/view của front:

php artisan vendor:publish --tag=gp247:front-public --force // -> public/GP247/Templates/GP247Front (CSS/JS storefront)

php artisan vendor:publish --tag=gp247:front-view --force // -> app/GP247/Templates/GP247Front (view template mặc định)

⚠️ --force sẽ ghi đè các file ở thư mục đích, bao gồm cả những tùy chỉnh cục bộ đã sửa ở đó. Hãy backup public/GP247 và thư mục view đã publish trước, và chỉ publish đúng tag bạn thực sự cần.

Để tạo plugin:

php artisan gp247:make-plugin --name=TenPlugin

Để tạo file zip plugin

php artisan gp247:make-plugin --name=TenPlugin --download=1

Để tạo template (NẾU bạn đã cài đặt gp247/front):

php artisan gp247:make-template --name=TenTemplate

Để tạo file zip template:

php artisan gp247:make-template --name=TenTemplate --download=1

Tùy chỉnh

Tùy chỉnh cấu hình lfm dành cho upload

php artisan vendor:publish --tag=config-lfm

Tùy chỉnh view của core admin

php artisan vendor:publish --tag=gp247:core-view // -> views/vendor/gp247-admin

Ghi đè các hàm helper gp247_*

Bước 1: Thêm danh sách các hàm muốn ghi đè vào config/gp247_functions_except.php

Bước 2: Tạo các file php chứa các hàm mới trong thư mục app/GP247/Helpers, ví dụ app/GP247/Helpers/myfunction.php

Ghi đè các file controller gp247

Bước 1: Copy các file controller muốn ghi đè trong vendor/gp247/core/src/Core/Controllers -> app/GP247/Core/Controllers

Bước 2: Thay đổi namespace GP247\Core\Controllers thành namespace App\GP247\Core\Controllers

Ghi đè các file controller API gp247

Bước 1: Copy các file controller muốn ghi đè trong vendor/gp247/core/src/Api/Controllers -> app/GP247/Core/Api/Controllers

Bước 2: Thay đổi namespace GP247\Core\Api\Controllers thành namespace App\GP247\Core\Api\Controllers

Thêm route

Sử dụng các hằng số prefix và middleware GP247_ADMIN_PREFIX, GP247_ADMIN_MIDDLEWARE trong khai báo route.

Tham khảo: https://github.com/gp247net/core/blob/master/src/routes.php

Các biến môi trường trong file .env

Nhanh chóng tắt GP247 và plugins

GP247_ACTIVE=1 // Để tắt, đặt giá trị 0

Tắt APIs

GP247_API_MODE=1 // Để tắt, đặt giá trị 0

Tiền tố bảng dữ liệu

GP247_DB_PREFIX=gp247_ //Không thể thay đổi sau khi cài đặt gp247

Tiền tố đường dẫn đến admin

GP247_ADMIN_PREFIX=gp247_admin