Giter Club home page Giter Club logo

lin-cms-tp5's Introduction


Lin-CMS-TP5

php version ThinkPHP version LISENCE

简介

预防针

  • 本项目非官方团队出品,仅出于学习、研究目的丰富下官方项目的语言支持,目前已被收录至官方团队仓库,点击查看
  • 本项目采取后跟进官方团队功能的形式,即官方团队出什么功能,这边就跟进开发什么功能,开发者不必担心前端适配问题。
  • 在上一点的基础上,我们会尝试加入一些自己的想法并实现。
  • 局限于本人水平,有些地方还需重构,已经纳入了计划中,当然也会有我没考虑到的,希望有更多人参与进来一起完善,毕竟PHP作为世界上最好的语言不能缺席。

专栏教程

  • 《Lin CMS PHP&Vue教程》专栏教程连载更新中,通过实战开源前后端分离CMS——Lin CMS全家桶(lin-cms-vue & lin-cms-tp5)为一个前端应用实现内容管理系统。一套教程入门上手vue、ThinkPHP两大框架,自用、工作、私单一次打通。

  • 读者反馈:《Lin CMS PHP&Vue教程》读者反馈贴

线上文档地址(完善中)

http://chenjinchuang.gitee.io/lin-cms-book/

线上 Demo

可直接参考官方团队的线上Demo:http://face.cms.7yue.pro/,用户名:super,密码:123456

什么是 Lin CMS?

Lin-CMS 是林间有风团队经过大量项目实践所提炼出的一套内容管理系统框架。Lin-CMS 可以有效的帮助开发者提高 CMS 的开发效率。

本项目是基于ThinkPHP 5.1的 Lin CMS 后端实现。

官方团队产品了解请访问TaleLin

Lin CMS 的特点

Lin CMS 的构筑**是有其自身特点的。下面我们阐述一些 Lin 的主要特点。

Lin CMS 是一个前后端分离的 CMS 解决方案

这意味着,Lin 既提供后台的支撑,也有一套对应的前端系统,当然双端分离的好处不仅仅在于此,我们会在后续提供NodeJS和PHP版本的 Lin。如果你心仪 Lin,却又因为技术栈的原因无法即可使用,没关系,我们会在后续提供更多的语言版本。为什么 Lin 要选择前后端分离的单页面架构呢?

首先,传统的网站开发更多的是采用服务端渲染的方式,需用使用一种模板语言在服务端完成页面渲染:比如 JinJa2、Jade 等。 服务端渲染的好处在于可以比较好的支持 SEO,但作为内部使用的 CMS 管理系统,SEO 并不重要。

但一个不可忽视的事实是,服务器渲染的页面到底是由前端开发者来完成,还是由服务器开发者来完成?其实都不太合适。现在已经没有多少前端开发者是了解这些服务端模板语言的,而服务器开发者本身是不太擅长开发页面的。那还是分开吧,前端用最熟悉的 Vue 写 JS 和 CSS,而服务器只关注自己的 API 即可。

其次,单页面应用程序的体验本身就要好于传统网站。

更多关于Lin CMS的介绍请访问Lin CMS线上文档

框架本身已内置了 CMS 常用的功能

Lin 已经内置了 CMS 中最为常见的需求:用户管理、权限管理、日志系统等。开发者只需要集中精力开发自己的 CMS 业务即可

Lin CMS TP5 的特点

在当前项目的版本(0.0.1)中,特点更多来自于ThinkPHP 5.1框架本身带来的特点。通过充分利用框架的特性,实现高效的后端使用、开发,也就是说,只要你熟悉ThinkPHP框架,那么对于理解使用和二次开发本项目是没有难度的,即便对于框架的某些功能存在疑问也完全可以通过ThinkPHP官方的开发手册找到答案。当然我们更欢迎你通过Issues来向我们提问:)

在下一个版本中(>0.0.1),我们会在框架的基础上融入一些自己的东西来增强或者优化框架的使用、开发体验。

所需基础

由于 Lin 采用的是前后端分离的架构,所以你至少需要熟悉 PHP 和 Vue。

Lin 的服务端框架是基于 ThinkPHP5.1的,所以如果你比较熟悉ThinkPHP的开发模式,那将可以更好的使用本项目。但如果你并不熟悉ThinkPHP,我们认为也没有太大的关系,因为框架本身已经提供了一套完整的开发机制,你只需要在框架下用 PHP 来编写自己的业务代码即可。照葫芦画瓢应该就是这种感觉。

但前端不同,前端还是需要开发者比较熟悉 Vue 的。但我想以 Vue 在国内的普及程度,绝大多数的开发者是没有问题的。这也正是我们选择 Vue 作为前端框架的原因。如果你喜欢 React Or Angular,那么加入我们,为 Lin 开发一个对应的版本吧。

快速开始

Server 端必备环境

  • 安装MySQL(version: 5.7+)

  • 安装PHP环境(version: 7.1+)

获取工程项目

git clone https://github.com/ChenJinchuang/lin-cms-tp5.git

执行完毕后会生成lin-cms-tp5目录

安装依赖包

执行命令前请确保你已经安装了composer工具

# 进入项目根目录
cd lin-cms-tp5
# 先执行以下命令,全局替换composer源,解决墙的问题
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
# 接着执行以下命令安装依赖包
composer install

数据库配置

Lin 需要你自己在 MySQL 中新建一个数据库,名字由你自己决定。例如,新建一个名为lin-cms的数据库。接着,我们需要在工程中进行一项简单的配置。使用编辑器打开 Lin 工程根目录下/config/database.php,找到如下配置项:

// 服务器地址
  'hostname'        => '',
// 数据库名
  'database'        => 'lin-cms',
// 用户名
  'username'        => 'root',
// 密码
  'password'        => '',
  
  //省略后面一堆的配置项

请务必根据自己的实际情况修改此配置项

导入数据

接下来使用你本机上任意一款数据库可视化工具,为已经创建好的lin-cms数据库运行lin-cms-tp5根目录下的schema.sql文件,这个SQL脚本文件将为为你生成一些基础的数据库表和数据。

运行

如果前面的过程一切顺利,项目所需的准备工作就已经全部完成,这时候你就可以试着让工程运行起来了。在工程的根目录打开命令行,输入:

php think run --port 5000 //启动thinkPHP内置的Web服务器

启动成功后会看到如下提示:

ThinkPHP Development server is started On <http://127.0.0.1:5000/>
You can exit with `CTRL-C`

打开浏览器,访问http://127.0.0.1:5000,你会看到一个欢迎界面,至此,Lin-cms-tp5部署完毕,可搭配lin-cms-vue使用了。

更新日志

查看日志

常见问题

查看常见问题

讨论交流

QQ 交流群

QQ 群号:643205479

微信公众号

微信搜索:林间有风

lin-cms-tp5's People

Contributors

aliqiqi avatar chenggx avatar chenjinchuang avatar china-wangyu avatar zhangailianxisheng avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

lin-cms-tp5's Issues

TP5数据库迁移相关问题

一 PHP 7.4版本环境导致迁移失败

具体错误没copy,大概意思就是本项目的迁移代码有些语法在7.4已经废弃了,看博客上说 PHP 7.1 或更高,大佬可以去验证下项目在7.4.4版本的兼容性。

这里可能要在文档中固定一下版本,不然学员跟着教程结果报错,还是要花一番时间去排错的。

二 迁移时报数据库错误

新装的mysql与新下载的项目,总之环境都是船新的。

php版本:PHP 7.1.31
mysql版本:mysql Ver 15.1 Distrib 10.1.21-MariaDB, for Win32 (AMD64)

按教程运行 php think migrate

出现如下报错:

[InvalidArgumentException] There was a problem creating the schema table: SQLSTATE[42000]: Syntax error or access violation: 1067 Invalid default value for 'end_time'

网上查了下,是sql-mode的问题,具体参考链接 Syntax error or access violation: 1067 Invalid default

可以看下是我个例还是普遍问题,如果是普遍,希望可以在文档里标注下,指路后人。

最后感谢大佬提供那么详细的教程!

后台用户表nickname数据字段和代码中类属性不一致报错

image

数据库中是nickname,vue前台传递的也是nickname
在lin-cms-tp5\admin-core\src\model\LinUser.php文件中

verify方法的用户查询字段为username
image
返回记录日志也是nickname
image

修改:

只需要将数据库字段修改为username
以及在login方法中将36行日志记录的nickname改为username即可

另外需要在migration文件夹中重新生成数据表结构

nickname是昵称,字面意思还是用username更为合适

TP5数据库迁移相关问题

一 PHP 7.4版本环境导致迁移失败

具体错误没copy,大概意思就是本项目的迁移代码有些语法在7.4已经废弃了,看博客上说 PHP 7.1 或更高,大佬可以去验证下项目在7.4.4版本的兼容性。

这里可能要在文档中固定一下版本,不然学员跟着教程结果报错,还是要花一番时间去排错的。

二 迁移时报数据库错误

新装的mysql与新下载的项目,总之环境都是船新的。

php版本:PHP 7.1.31
mysql版本:mysql Ver 15.1 Distrib 10.1.21-MariaDB, for Win32 (AMD64)

按教程运行 php think migrate

出现如下报错:

[InvalidArgumentException] There was a problem creating the schema table: SQLSTATE[42000]: Syntax error or access violation: 1067 Invalid default value for 'end_time'

网上查了下,是sql-mode的问题,具体参考链接 Syntax error or access violation: 1067 Invalid default

可以看下是我个例还是普遍问题,如果是普遍,希望可以在文档里标注下,指路后人。

最后感谢大佬提供那么详细的教程!

注册用户接口,email 字段错误

image

image

注册接口中,邮箱应该是可选字段,但是在创建用户的时候验证邮箱在表中是否唯一。没有根据参数进行判断,导致如果创建用户的时候没有填写邮箱就会报错。

image

lin-cms-vue上传图片加载失败

在lin-cms-vue-0.2.x 前端中有错误两处,
1、按十五章进行新增轮播图片设计时,增加图片后,无法加载显示图片。到lin-cms-tp5后端,在public/uploads/20200805目录中已经上传了图片。应该是返回前端的图片网址不准确。从开发者工具跟踪中,提示:get http://localhost/images/20200805/2349d1ad2993822d14acdf99d8ab1b6b.jpg 404(Not found)
2、选择lin-cms-vue-0.2.x的demo自定义组件中的upload图象上传页面,选择图片上传后,页面加载失败,提示:get http://127.0.0.1:8000/uploads/20200805/755eb7e4710cc112d5999deb4eb60f7d.jpg net::ERR_CONNECTION_REFUSED。注意,这里出现了127.0.0.1:8000。本人实际启动的是127.0.0.1:5000。这个127.0.0.1:8000是在那个文件中设置 的呢?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.