Cảnh báo AI: bài này được soạn với sự hỗ trợ của AI.
Chào mọi người, mình là dat aka luank3.
Mình viết lại SketchCMS từ đầu bằng PHP 8.2+ và đặt tên là SoulCMS. Schema database giữ nguyên 11 bảng, nên ai đang có data SketchCMS thì trỏ sang là chạy, không cần migrate. Tài khoản cũ đăng nhập bình thường, mật khẩu cũ tự đổi sang hash mới ở lần đăng nhập đầu.
Ngoài MySQL/MariaDB thì giờ chạy được thêm SQLite và PostgreSQL. Lúc chạy không cần framework hay package nào (có Composer cũng được, không có cũng không sao).
Hiện đã có bài viết, chuyên mục, chương, bình luận, thẻ, thành viên, tin nhắn riêng, chat và trang admin cơ bản. Bên bảo mật có CSRF, CSP, rate limit. Có 75 test PHPUnit.
Trạng thái
Những thứ chưa có so với SketchCMS v1:
Danh sách đầy đủ ở docs/COMPATIBILITY.md.
Tốc độ
Mình đo thử GET / trên localhost, 30 lượt mỗi bên, chạy xen kẽ, có 1 lượt làm nóng:
Chạy thử
Cần PHP 8.2+ với pdo, json, mbstring, openssl và một trong pdo_sqlite / pdo_mysql / pdo_pgsql. Nếu thử trên database thật thì nhớ backup trước.
Mã nguồn (MIT): https://github.com/luank3/soulcms
Cảm ơn tác giả SketchCMS vì cái schema. Ai có database SketchCMS thử giúp mình rồi báo lỗi nhé. Mình cũng đang phân vân làm media hay BBCode trước, mọi người thấy cái nào cần hơn?
Chào mọi người, mình là dat aka luank3.
Mình viết lại SketchCMS từ đầu bằng PHP 8.2+ và đặt tên là SoulCMS. Schema database giữ nguyên 11 bảng, nên ai đang có data SketchCMS thì trỏ sang là chạy, không cần migrate. Tài khoản cũ đăng nhập bình thường, mật khẩu cũ tự đổi sang hash mới ở lần đăng nhập đầu.
Ngoài MySQL/MariaDB thì giờ chạy được thêm SQLite và PostgreSQL. Lúc chạy không cần framework hay package nào (có Composer cũng được, không có cũng không sao).
Hiện đã có bài viết, chuyên mục, chương, bình luận, thẻ, thành viên, tin nhắn riêng, chat và trang admin cơ bản. Bên bảo mật có CSRF, CSP, rate limit. Có 75 test PHPUnit.
Trạng thái
Những thứ chưa có so với SketchCMS v1:
- media: upload, thư viện, tải file
- file trả phí, lượt thích
- BBCode, smiley, highlight code. Bài cũ viết bằng BBCode sẽ hiển thị chưa đúng
- gửi mail quên mật khẩu, sửa hồ sơ, khóa tài khoản khi nhập sai nhiều lần
- vài trang admin: trang tĩnh, theme, SMTP
Danh sách đầy đủ ở docs/COMPATIBILITY.md.
Tốc độ
Mình đo thử GET / trên localhost, 30 lượt mỗi bên, chạy xen kẽ, có 1 lượt làm nóng:
CMS │ Trung bình │ Trung vị │ p95
──────────┼────────────┼──────────┼─────────
SketchCMS │ 447,3 ms │ 426,3 ms │ 515,0 ms
SoulCMS │ 9,5 ms │ 9,0 ms │ 11,3 ms
Chạy thử
cp .env.example .env # sửa thông tin database
php bin/soulcms install # tạo schema + tài khoản admin
php bin/soulcms db:seed # dữ liệu mẫu, không bắt buộc
php bin/soulcms serve # http://127.0.0.1:8000
Cần PHP 8.2+ với pdo, json, mbstring, openssl và một trong pdo_sqlite / pdo_mysql / pdo_pgsql. Nếu thử trên database thật thì nhớ backup trước.
Mã nguồn (MIT): https://github.com/luank3/soulcms
Cảm ơn tác giả SketchCMS vì cái schema. Ai có database SketchCMS thử giúp mình rồi báo lỗi nhé. Mình cũng đang phân vân làm media hay BBCode trước, mọi người thấy cái nào cần hơn?