squashjedi/basecamp 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

squashjedi/basecamp

Composer 安装命令:

composer require squashjedi/basecamp

包简介

:package_description

README 文档

README

Total Downloads Latest Stable Version License

About Basecamp

Basecamp provides a great starting place for your Laravel project with all of the following:-

  • It has a fluent interface to OAuth authentication with Facebook using the Laravel Socialite package.
  • Built in emails to authenticate users, password resets, resend validation code and a welcome email.
  • An area for logged in users to update their settings.
  • A webmaster's admin panel to CRUD Users.
  • A Users API.

Install

via Composer

composer require squashjedi/basecamp

Configuration

After installing the Basecamp library, register Squashjedi\Basecamp\BasecampServiceProvider::class in your config/app.php configuration file:

'providers' => [
    // Other service providers...

    Squashjedi\Basecamp\BasecampServiceProvider::class,
],

You will also need to add credentials for the OAuth services your application utilises. These credentials should be placed in your config/services.php configuration file and should use the key facebook. For example:

'facebook' => [
    'client_id' => 'your-facebook-app-id',
    'client_secret' => 'your-facebook-app-secret',
    'redirect' => 'http://your-callback-url',
],

Run the following commands:

php artisan vendor:publish --tag=basecamp
php artisan migrate
php artisan db:seed --class="Squashjedi\\Basecamp\\DatabaseSeeder"
npm install
npm install font-awesome

Add these Vue components in resources/assets/js/app.js:

Vue.component('basecamp-pagination',
    require('./components/basecamp/Pagination.vue'));

Vue.component('basecamp-notify',
    require('./components/basecamp/Notify.vue'));

Vue.component('basecamp-modal-delete',
    require('./components/basecamp/ModalDelete.vue'));

Vue.component('basecamp-admin-users',
    require('./components/basecamp/admin/users/Index.vue'));

Vue.component('basecamp-admin-users-fields',
    require('./components/basecamp/admin/users/Fields.vue'));

Vue.component('basecamp-admin-users-create',
    require('./components/basecamp/admin/users/Create.vue'));

Vue.component('basecamp-admin-users-edit',
    require('./components/basecamp/admin/users/Edit.vue'));

Vue.component('basecamp-user-settings-account',
    require('./components/basecamp/user/settings/account/Account.vue'));

Vue.component('basecamp-user-settings-account-deactivate',
    require('./components/basecamp/user/settings/account/Deactivate.vue'));

Vue.component('basecamp-user-settings-account-deactivate-modal',
    require('./components/basecamp/user/settings/account/DeactivateModal.vue'));

Vue.component('basecamp-user-settings-password',
    require('./components/basecamp/user/settings/password/Password.vue'));

Vue.component('basecamp-settings-password-forgot',
    require('./components/basecamp/user/settings/password/Forgot.vue'));

Vue.component('basecamp-user-settings-password-reset',
    require('./components/basecamp/user/settings/password/Reset.vue'));

Add these at the bottom of resources/assets/sass/app.scss:

// Font Awesome
@import "node_modules/font-awesome/scss/font-awesome.scss";

// Basecamp variables
@import "basecamp/variables";

// Basecamp extras
@import "basecamp/extras";

Run the following command:

npm run dev

Delete resources/views/welcome.blade.php.

Delete all routes in routes/web.php.

Replace app/User.php with:

<?php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Squashjedi\Basecamp\App\Notifications\ResetPasswordNotification;
use Squashjedi\Basecamp\App\Social;
use Squashjedi\Basecamp\App\Role;
use Squashjedi\Basecamp\App\PasswordReset;
use Illuminate\Database\Eloquent\SoftDeletes;

class User extends Authenticatable
{
    use Notifiable, SoftDeletes;

    /**
     * The attributes that should be mutated to dates.
     *
     * @var array
     */
    protected $dates = ['deleted_at'];

    /**
     * Send the password reset notification.
     *
     * @param  string  $token
     * @return void
     */
    public function sendPasswordResetNotification($token)
    {
        $this->notify(new ResetPasswordNotification($token));
    }

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'verified', 'name', 'email', 'password', 'verify_token', 'deleted_at'
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];

    /**
     * Get the social networks for the user.
     */
    public function social()
    {
        return $this->hasMany(Social::class);
    }

    /**
     * Get the roles for the user.
     */
    public function roles()
    {
        return $this->hasMany(Role::class);
    }

    /**
     * Get the password code for the user.
     */
    public function passwordReset()
    {
        return $this->hasOne(PasswordReset::class, 'email', 'email');
    }
}

Add the following to resources/lang/en/validation.php:

return [
    // Other error messages...

    'password_match'        => 'This doesn\'t match your current password',
];

Install Laravel Passport https://packagist.org/packages/laravel/passport.

Add this middleware to app/Http/Kernel:

protected $middlewareGroups = [
    'web' => [
        // Other middleware classes...

        \Laravel\Passport\Http\Middleware\CreateFreshApiToken::class,
    ],
];

Usage

The database seed creates 1000 users.

The webmaster's login details are:

Email: me@example.com
Password: 123456

License

The MIT License (MIT). Please see License File for more information.

squashjedi/basecamp 适用场景与选型建议

squashjedi/basecamp 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 26 次下载、GitHub Stars 达 0, 最近一次更新时间为 2017 年 06 月 30 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「basecamp」 「Squashjedi」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 squashjedi/basecamp 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 squashjedi/basecamp 我们能提供哪些服务?
定制开发 / 二次开发

基于 squashjedi/basecamp 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 26
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 6
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2017-06-30