{"id":15025498,"url":"https://github.com/lazyskills/lin-cms-tp6","last_synced_at":"2025-07-07T00:31:38.237Z","repository":{"id":143941450,"uuid":"227309180","full_name":"LazySkills/lin-cms-tp6","owner":"LazySkills","description":"基于ThinkPHP 6.0 的 Lin CMS 后端实现","archived":false,"fork":false,"pushed_at":"2020-04-07T15:49:05.000Z","size":10628,"stargazers_count":22,"open_issues_count":0,"forks_count":6,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-09T20:03:42.894Z","etag":null,"topics":["annotation-tool","lin-cms","php71","thinkphp6"],"latest_commit_sha":null,"homepage":"https://github.com/LazySkills/lin-cms-tp6","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LazySkills.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-12-11T08:02:41.000Z","updated_at":"2024-12-13T05:34:21.000Z","dependencies_parsed_at":"2024-01-13T18:30:02.213Z","dependency_job_id":"c128b9ac-e279-4f20-9f80-e9c801ff121d","html_url":"https://github.com/LazySkills/lin-cms-tp6","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LazySkills%2Flin-cms-tp6","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LazySkills%2Flin-cms-tp6/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LazySkills%2Flin-cms-tp6/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LazySkills%2Flin-cms-tp6/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LazySkills","download_url":"https://codeload.github.com/LazySkills/lin-cms-tp6/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248103864,"owners_count":21048245,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["annotation-tool","lin-cms","php71","thinkphp6"],"created_at":"2024-09-24T20:02:28.015Z","updated_at":"2025-04-09T20:03:50.717Z","avatar_url":"https://github.com/LazySkills.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003ca href=\"http://doc.cms.7yue.pro/\"\u003e\n  \u003cimg src=\"http://doc.cms.7yue.pro/left-logo.png\" width=\"250\"/\u003e\u003c/a\u003e\n  \u003cbr\u003e\n  Lin-CMS-TP6\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/PHP-%3E%3D7.1-blue.svg\" alt=\"php version\" data-canonical-src=\"https://img.shields.io/badge/PHP-%3E%3D7.1-blue.svg\" style=\"max-width:100%;\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.kancloud.cn/manual/thinkphp6_0/1037479\" rel=\"nofollow\"\u003e\u003cimg src=\"https://img.shields.io/badge/ThinkPHP-6.0.*-green.svg\" alt=\"ThinkPHP version\" data-canonical-src=\"https://img.shields.io/badge/ThinkPHP-6.0.*-green.svg\" style=\"max-width:100%;\"\u003e\u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/badge/license-license--2.0-lightgrey.svg\" alt=\"LISENCE\" data-canonical-src=\"https://img.shields.io/badge/license-license--2.0-lightgrey.svg\" style=\"max-width:100%;\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n# 简介\n\n## 预防针\n\n* 本项目非官方团队出品，仅出于学习、研究目的丰富下官方项目的语言支持。\n* 本项目采取后跟进官方团队功能的形式，即官方团队出什么功能，这边就跟进开发什么功能，开发者不必前端担心适配问题。\n* 在上一点的基础上，我们会尝试加入一些自己的想法并实现。\n* 局限于本人水平，有些地方还需重构，已经纳入了计划中，当然也会有我没考虑到的，希望有更多人参与进来一起完善，毕竟PHP作为世界上最好的语言不能缺席。\n\n## 线上文档地址(完善中...)\n\n文档：[LazySkills/Lin-Cms-Tp6](https://lazyskills.github.io/views/php/lin-cms-tp6/)\n\n## 线上 Demo\n\n可直接参考官方团队的线上Demo：[http://face.cms.7yue.pro/](http://face.cms.7yue.pro/)，用户名:super，密码：123456\n\n## 什么是 Lin CMS？\n\n\u003e Lin-CMS 是林间有风团队经过大量项目实践所提炼出的一套**内容管理系统框架**。Lin-CMS 可以有效的帮助开发者提高 CMS 的开发效率。\n\n本项目是基于ThinkPHP 6.0的 Lin CMS 后端实现。\n\n官方团队产品了解请访问[TaleLin](https://github.com/TaleLin)\n\n## Lin CMS 的特点\n\nLin CMS 的构筑思想是有其自身特点的。下面我们阐述一些 Lin 的主要特点。\n\n**Lin CMS 是一个前后端分离的 CMS 解决方案**\n\n这意味着，Lin 既提供后台的支撑，也有一套对应的前端系统，当然双端分离的好处不仅仅在于此，我们会在后续提供NodeJS和PHP版本的 Lin。如果你心仪 Lin，却又因为技术栈的原因无法即可使用，没关系，我们会在后续提供更多的语言版本。为什么 Lin 要选择前后端分离的单页面架构呢？\n\n首先，传统的网站开发更多的是采用服务端渲染的方式，需用使用一种模板语言在服务端完成页面渲染：比如 JinJa2、Jade 等。 服务端渲染的好处在于可以比较好的支持 SEO，但作为内部使用的 CMS 管理系统，SEO 并不重要。\n\n但一个不可忽视的事实是，服务器渲染的页面到底是由前端开发者来完成，还是由服务器开发者来完成？其实都不太合适。现在已经没有多少前端开发者是了解这些服务端模板语言的，而服务器开发者本身是不太擅长开发页面的。那还是分开吧，前端用最熟悉的 Vue 写 JS 和 CSS，而服务器只关注自己的 API 即可。\n·\n其次，单页面应用程序的体验本身就要好于传统网站。\n\n更多关于Lin CMS的介绍请访问[Lin CMS线上文档](http://doc.cms.7yue.pro/)\n\n**框架本身已内置了 CMS 常用的功能**\n\nLin 已经内置了 CMS 中最为常见的需求：用户管理、权限管理、日志系统等。开发者只需要集中精力开发自己的 CMS 业务即可\n\n## Lin CMS TP6 的特点\n\n在当前项目的版本`(0.0.1)`中，特点更多来自于`ThinkPHP 6.0`框架本身带来的特点。通过充分利用框架的特性，实现高效的后端使用、开发，也就是说，只要你熟悉`ThinkPHP`框架，那么对于理解使用和二次开发本项目是没有难度的，即便对于框架的某些功能存在疑问也完全可以通过ThinkPHP官方的开发手册找到答案。当然我们更欢迎你通过[Issues](https://lazyskills.github.io/views/php/lin-cms-tp6/)来向我们提问:)\n\n在下一个版本中`(\u003e0.0.1)`,我们会在框架的基础上融入一些自己的东西来增强或者优化框架的使用、开发体验。\n\n## 所需基础\n\n由于 Lin 采用的是前后端分离的架构，所以你至少需要熟悉 PHP 和 Vue。\n\nLin 的服务端框架是基于 ThinkPHP6.0的，所以如果你比较熟悉ThinkPHP的开发模式，那将可以更好的使用本项目。但如果你并不熟悉ThinkPHP，我们认为也没有太大的关系，因为框架本身已经提供了一套完整的开发机制，你只需要在框架下用 PHP 来编写自己的业务代码即可。照葫芦画瓢应该就是这种感觉。\n\n但前端不同，前端还是需要开发者比较熟悉 Vue 的。但我想以 Vue 在国内的普及程度，绝大多数的开发者是没有问题的。这也正是我们选择 Vue 作为前端框架的原因。如果你喜欢 React Or Angular，那么加入我们，为 Lin 开发一个对应的版本吧。\n\n# 快速开始\n\n## Server 端必备环境\n\n* 安装MySQL（version： 5.6+）\n\n* 安装PHP环境(version： 7.1+)\n\n## 获取工程项目\n\n```bash\ngit clone https://github.com/LazySkills/lin-cms-tp6.git\n```\n\n\u003e 执行完毕后会生成lin-cms-tp6目录\n\n## 安装依赖包\n\n执行命令前请确保你已经安装了composer工具\n\n```bash\n# 进入项目根目录\ncd lin-cms-tp6\n# 先执行以下命令，全局替换composer源，解决墙的问题\ncomposer config -g repo.packagist composer https://mirrors.aliyun.com/composer/\n# 接着执行以下命令安装依赖包\ncomposer install\n```\n\n## 数据库配置\n\nLin 需要你自己在 MySQL 中新建一个数据库，名字由你自己决定。例如，新建一个名为 lin-cms 的数据库。接着，我们需要在工程中进行一项简单的配置。使用编辑器打开 Lin 工程根目录下``/config/database.php``，找到如下配置项：\n\n```php\n// 服务器地址\n  'hostname'        =\u003e '',\n// 数据库名\n  'database'        =\u003e 'lin-cms',\n// 用户名\n  'username'        =\u003e 'root',\n// 密码\n  'password'        =\u003e '',\n  \n  //省略后面一堆的配置项\n```\n\n**请务必根据自己的实际情况修改此配置项**\n\n## 数据迁移\n\n\u003e 如果你已经部署过官方团队其他版本的Lin-cms后端，并且已经生成了相应基础数据库表，可以略过数据迁移章节，但必须将原来lin_user表中super记录删除(密码加密方式不一致，会导致登陆失败)，并在根目录下运行`php think seed:run` ,这条命令会为你在lin_user表中插入一条记录,即super，如果你并没有部署过其他版本的LinCMS后端，请继续阅读后面的内容\n\n配置完数据库连接信息后，我们需要为数据库导入一些核心的基础表，在项目根目录中，打开命令行，输入：\n\n```bash\nphp think migrate:run\n```\n\n当你看到如下提示时，说明迁移脚本已经启动并在数据库中生成了相应的基础数据库表\n\n```php\n== 20190427113042 User: migrating\n== 20190427113042 User: migrated 0.0540s\n\n== 20190427125215 Book: migrating\n== 20190427125215 Book: migrated 0.0593s\n\n== 20190427125655 LinAuth: migrating\n== 20190427125655 LinAuth: migrated 0.0721s\n\n== 20190427125839 LinEvent: migrating\n== 20190427125839 LinEvent: migrated 0.0648s\n\n== 20190427125956 LinGroup: migrating\n== 20190427125956 LinGroup: migrated 0.0656s\n\n== 20190427130203 LinLog: migrating\n== 20190427130203 LinLog: migrated 0.0558s\n\n== 20190427130637 LinPoem: migrating\n== 20190427130637 LinPoem: migrated 0.0879s\n\nAll Done. Took 0.6255s\n```\n\n迁移成功后我们需要为lin_user表插入一条数据，作为超级管理员，方便你后续在前端项目中登陆和测试，继续在命令行中输入：\n\n```bash\nphp think seed:run\n```\n\n当你看到如下提示时，说明迁移脚本已经启动并在lin_user表中创建了一条记录\n\n```php\n== UserSeeder: seeding\n== UserSeeder: seeded 0.0351s\n\nAll Done. Took 0.0385s\n```\n\n## 运行\n\n如果前面的过程一切顺利，项目所需的准备工作就已经全部完成，这时候你就可以试着让工程运行起来了。在工程的根目录打开命令行，输入：\n\n```bash\nphp think run --port 5000 //启动thinkPHP内置的Web服务器\n```\n\n启动成功后会看到如下提示：\n\n```php\nThinkPHP Development server is started On \u003chttp://127.0.0.1:5000/\u003e\nYou can exit with `CTRL-C`\n```\n\n打开浏览器，访问``http://127.0.0.1:5000``，你会看到一个欢迎界面，至此，Lin-cms-tp6部署完毕，可搭配[lin-cms-vue](https://github.com/TaleLin/lin-cms-vue)使用了。\n\n## 下个版本开发计划\n\n- [ ] 常用异步任务封装\n\n\n## 感谢以下开源产品\n\n万分感谢，以下排名不分先后\n\n- [`ThinkPHP v6`](https://www.kancloud.cn/manual/thinkphp6_0) ThinkPHP6.0官方文档\n- [`LazySkills/PAA-ThinkPHP6`](https://github.com/LazySkills/PAA-thinkphp6) 优秀的TP6注解框架\n- [`LazySkills/think-annotation`](https://github.com/LazySkills/think-annotation) 优秀注解扩展\n- [`firebase/php-jwt`](https://packagist.org/packages/firebase/php-jwt) `php-jwt`验证器\n- [`sentsin/layui`](https://github.com/sentsin/layui) 优秀前端框架\n\n再次感谢，希望大家能帮这几个项目点点`star`。\n\n## 讨论交流\n\n### QQ 交流群\n\n#### 林间有风官方群\n\nQQ 群号：643205479\n\n\u003cimg class=\"QR-img\" width=\"258\" height=\"300\" src=\"http://imglf3.nosdn0.126.net/img/Qk5LWkJVWkF3Nmdyc2xGcUtScEJLOVV1clErY1dJa0FsQ3E1aDZQWlZHZ2dCbSt4WXA1V3dRPT0.jpg?imageView\u0026thumbnail=1680x0\u0026quality=96\u0026stripmeta=0\u0026type=jpg\"\u003e\n\n#### Lin-Cms-Tp6交流群\n\nQQ 群号：669813444\n\n\u003cimg class=\"QR-img\" width=\"258\" height=\"300\" src=\"https://lazyskills.github.io/lin-cms-tp6%E5%90%8E%E6%8F%B4%E4%BC%9A.png\"\u003e\n\n\n\n### 微信公众号\n\n微信搜索：林间有风\n\n\u003cimg class=\"QR-img\" src=\"http://imglf6.nosdn0.126.net/img/YUdIR2E3ME5weEdlNThuRmI4TFh3UWhiNmladWVoaTlXUXpicEFPa1F6czFNYkdmcWRIbGRRPT0.jpg?imageView\u0026thumbnail=500x0\u0026quality=96\u0026stripmeta=0\u0026type=jpg\"\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flazyskills%2Flin-cms-tp6","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flazyskills%2Flin-cms-tp6","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flazyskills%2Flin-cms-tp6/lists"}