All Projects → overtrue → Api.yike.io

overtrue / Api.yike.io

一刻社区后端 API 源码

Projects that are alternatives of or similar to Api.yike.io

Core
Simple forum software for building great communities.
Stars: ✭ 5,372 (+435.06%)
Mutual labels:  forum, laravel
Laravel Reddit
Reddit clone built with Laravel 5
Stars: ✭ 101 (-89.94%)
Mutual labels:  forum, laravel
Voten
The code that powers voten.co
Stars: ✭ 1,215 (+21.02%)
Mutual labels:  forum, laravel
Forum
A fully-fledged modern forum app, including @mention and private messaging, built with Laravel 5.3 and Vue 2.
Stars: ✭ 135 (-86.55%)
Mutual labels:  forum, laravel
Forum
Ama Laravel? Torne se um Jedi e Ajude outros Padawans
Stars: ✭ 233 (-76.79%)
Mutual labels:  forum, laravel
Flarum
Simple forum software for building great communities.
Stars: ✭ 12,190 (+1114.14%)
Mutual labels:  forum, laravel
Flarum
Flarum - 优雅自由的 PHP 轻社区
Stars: ✭ 1,588 (+58.17%)
Mutual labels:  forum, laravel
Laravel Forum
A minimal forum package designed for quick and easy integration in Laravel projects
Stars: ✭ 335 (-66.63%)
Mutual labels:  forum, laravel
Hifone
A free, open-source, self-hosted forum software based on the Laravel PHP Framework. QQ群:656868
Stars: ✭ 673 (-32.97%)
Mutual labels:  forum, laravel
Nuswhispers
NUSWhispers source.
Stars: ✭ 36 (-96.41%)
Mutual labels:  laravel
Lara Eye
Filter your Query\Builder using a structured query language
Stars: ✭ 39 (-96.12%)
Mutual labels:  laravel
Laravel Personality Insights
👩 👱 Using IBM Watson Personality Insights Service with Laravel 5
Stars: ✭ 36 (-96.41%)
Mutual labels:  laravel
Laravel Ip Gateway
Laravel IP Gateway
Stars: ✭ 37 (-96.31%)
Mutual labels:  laravel
Laravel 2c2p
Laravel 2C2P package
Stars: ✭ 39 (-96.12%)
Mutual labels:  laravel
Time Traveller
Time travel for your Laravel Models.
Stars: ✭ 36 (-96.41%)
Mutual labels:  laravel
Freelancers Market
Laravel Project to help freelance websites clients and freelancers to find each other.
Stars: ✭ 39 (-96.12%)
Mutual labels:  laravel
Laravel Support
Rinvex common support helpers, contracts, and traits required by various Rinvex packages. Validator functionality, and basic controller included out-of-the-box.
Stars: ✭ 36 (-96.41%)
Mutual labels:  laravel
Ys Tinify Laravel
Tinify API support with laravel
Stars: ✭ 36 (-96.41%)
Mutual labels:  laravel
Laravel Passport Vue Authentication
Laravel & Vue.js - authentication with Laravel Passport (Laravel 7 + Passport 9.3 + Vue 2.6 + Vuex 3.5)
Stars: ✭ 40 (-96.02%)
Mutual labels:  laravel
Adaptcms
AdaptCMS is an open source CMS that is made for complete control of your website, easiness of use and easily adaptable to any type of website. It's made easy with advanced custom fields, a very simple but powerful template system and much more.
Stars: ✭ 39 (-96.12%)
Mutual labels:  laravel

Yike.io

Build Status

此项目为 https://yike.io 的后端 API,基于 Laravel 5 开发。

🏵前端源码:https://github.com/overtrue/yike.io

开源中国 Gitee 仓库:Fork me on Gitee

🚨此次开源只是应大家的要求,所以请不要联系我咨询任何使用问题,遇到问题请自行解决,熟读 Laravel 文档。 如果你有兴趣参与改进,请直接 PR 即可。

🎬快速上手视频:053. 优秀的开源社区——yike.io

运行环境要求

开发环境部署/安装

本项目代码使用 PHP 框架 Laravel 5 开发,本地开发环境使用 Laravel Homestead

下文将在假定读者已经安装好了 Homestead 的情况下进行说明。如果您还未安装 Homestead,可以参照 Homestead 安装与设置 进行安装配置。

基础安装

克隆源代码

克隆源代码到本地:

> git clone [email protected]:overtrue/api.yike.io.git

配置本地的 Homestead 环境

1). 运行以下命令编辑 Homestead.yaml 文件:

homestead edit

2). 加入对应修改,如下所示:

folders:
    - map: ~/my-path/api.yike.io/ # 你本地的项目目录地址
      to: /home/vagrant/api.yike.io

sites:
    - map: api.yike.io.test
      to: /home/vagrant/api.yike.io/public

databases:
    - api_yike_io

3). 应用修改

修改完成后保存,然后执行以下命令应用配置信息修改:

homestead provision

随后请运行 homestead reload 进行重启。

安装扩展包依赖

composer install

生成配置文件

cp .env.example .env

你可以根据情况修改 .env 文件里的内容,如数据库连接、缓存、邮件设置等:

APP_URL=http://api.yike.io.test
...
DB_HOST=localhost
DB_DATABASE=api_yike_io
DB_USERNAME=homestead
DB_PASSWORD=secret

生成数据表及生成测试数据

在 Homestead 的网站根目录下运行以下命令

$ php artisan migrate --seed

初始的用户角色权限已使用数据迁移生成。

生成秘钥

$ php artisan key:generate

Passport 初始化

$ php artisan passport:install

将生成的 password grant 对应的 id 与 secret 记录下来,用于配置 env 变量。

PASSPORT_PASSWORD_CLIENT_ID=
PASSPORT_PASSWORD_CLIENT_SECRET=

如果你忘记了,就去找 oauth_clients 表中找吧。

配置 hosts 文件

echo "192.168.10.10   api.yike.io.test" | sudo tee -a /etc/hosts

其它服务配置

腾讯 007 防水墙

腾讯防水墙 注册账号,创建验证码服务(你可能需要创建两个验证,一个用于发布文章,一个用于注册账号),获取对应的配置填写到 .env 中:

# 用于发布文章的验证码
CAPTCHA_ID_PUBLISH=
CAPTCHA_SECRET_PUBLISH=

# 用于用户注册用的验证码
CAPTCHA_ID_REGISTER=
CAPTCHA_SECRET_REGISTER=
帖子搜索服务

帖子搜索基于 ElasticSearch 实现,所以你需要在任何机器上部署一个 ES 服务,然后将地址与索引名称配置到:

ELASTICSEARCH_INDEX=yike
ELASTICSEARCH_HOST=http://127.0.0.1:9200
敏感词配置

请自行寻找敏感词库,将敏感词放置于 storage/SensitiveWords.txt 中,每行一个:

敏感词1
敏感词2
...

链接入口

管理员账号请自己添加 UserSeeder 创建。

至此, 安装完成 ^_^。

扩展包使用情况

扩展包 一句话描述 本项目应用场景
overtrue/easy-sms 多网关短信发送组件 发送验证码
overtrue/laravel-emoji emoji 转换组件 帖子与评论 emoji 解析
overtrue/laravel-filesystem-qiniu 七牛 CDN SDK 帖子内容图片存储
overtrue/laravel-follow Laravel 用户关系组件 用户关注与帖子订阅
overtrue/laravel-lang Laravel 多语言 报错信息本地化
overtrue/laravel-mail-aliyun 阿里云邮件 SDK 发送通知邮件
overtrue/laravel-socialite 社交登录组件 用户使用第三方登录
overtrue/laravel-uploader Laravel 上传功能封装 帖子内容图片上传
overtrue/laravel-query-logger Laravel SQL 监听工具 开发环境查看 SQL 记录
Intervention/image 图片处理功能库 用于图片裁切
guzzlehttp/guzzle HTTP 请求套件 我也记不得,反正就是要用
predis/predis Redis 官方首推的 PHP 客户端开发包 缓存驱动 Redis 基础扩展包
mewebstudio/Purifier 用户提交的 Html 白名单过滤 帖子内容的 Html 安全过滤,防止 XSS 攻击
laravel/passport 用户授权 基于 Personal Access Token 的前后端用户认证
laravel/horizon 队列监控面板 监听队列使用情况
laravolt/avatar 生成用户头像 用户头像
sentry/sentry-laravel Sentry 报错监控 监控系统错误
spatie/laravel-activitylog 用户行为记录 个人中心的用户动态
spatie/laravel-url-signer URL 加密 用户激活链接
tamayo/laravel-scout-elastic Laravel Scout ES 驱动 帖子搜索
tucker-eric/eloquentfilter 模型字段过滤 接口字段过滤
vinkla/hashids HashID 实现 暂时好像没用到
beyondcode/laravel-self-diagnosis Laravel 基础环境检查工具 检查配置是否正确

自定义 Artisan 命令

命令行名字 说明 Cron 代码调用
es:init 初始化 ES 模板

PHP 扩展包开发

想知道如何从零开始构建 PHP 扩展包?

请关注我的实战课程,我会在此课程中分享一些扩展开发经验 —— 《PHP 扩展包实战教程 - 从入门到发布》

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].