muhamed-didovic/shortener

为Laravel和Vue.js SPA应用提供的URL缩短器

1.1.5 2020-07-02 23:09 UTC

This package is auto-updated.

Last update: 2024-09-29 05:35:45 UTC


README

Latest Version on Packagist Software License Build Status Coverage Status Quality Score StyleCI Total Downloads

这个Laravel包允许您缩短URL,同时附带前端部分,该部分是用vue.js和vuex实现的。您可以发布所有文件,如:视图、配置、迁移。对于前端,您可以发布js和css文件,并相应地进行调整。

基本文档

安装

Laravel Shortener需要PHP 7.1-7.4。这个特定的版本仅支持Laravel 5.5-5.8、6和7。

要获取最新版本,只需使用Composer引入项目。

通过Composer

$ composer require muhamed-didovic/shortener

安装后,如果您没有使用自动包发现(Laravel 5.4及以下版本),则需要将MuhamedDidovic\Shortener\ShortenerServiceProvider服务提供者在您的config/app.php中注册,如下所示

'providers' => [
    ...
    MuhamedDidovic\Shortener\ShortenerServiceProvider::class,
]    

您还可以选择性地为我们的外观别名

'aliases' => [
    ...
    'Shortener' => MuhamedDidovic\Shortener\Facades\Shortener::class,
]    

使用和下一步

安装包后,您需要运行以下命令才能使其工作,之后我会提供有关配置和使用的更多信息。

第一步,运行负责将js和css发布到resourcespublic文件夹的命令。

php artisan vendor:publish --provider="MuhamedDidovic\Shortener\ShortenerServiceProvider" --tag="shortener::assets"

第二步,迁移数据库并获取('links')表(这可以在('shortener.php')配置文件中更改),其中将存储URL。

php artisan migrate

第三步,检查您的('.env')文件,并检查('APP_URL')选项,这默认用于缩短的URL,您也可以在('shortener.php')配置文件中更改或覆盖它。

第四步,为了同时提供视图文件和Vue.js,您需要一个路由,默认路由是('{any?}'),因此只需输入您路由中不存在的任何URL即可。

配置

Laravel Shortener包支持可选配置。

您可以使用以下命令发布迁移

php artisan vendor:publish --provider="MuhamedDidovic\Shortener\ShortenerServiceProvider" --tag="shortener::migrations"

迁移发布后,您可以通过运行迁移来创建media-table

php artisan migrate

您可以使用以下命令发布配置文件

php artisan vendor:publish --provider="MuhamedDidovic\Shortener\ShortenerServiceProvider" --tag="shortener::config"

这是已发布的配置文件的内容

return [
    /*
     * Name of table where the links or the URLs should be stored
     */
    'table'  => 'links',

    /*
     * Url that should be used with the shortened string
     */
    'url'    => env('APP_URL', 'https://'),

    /*
     * Routes used in the package
     */
    'routes' => [
        /*
         * Route used to store url with post request
         */
        'post_short_route' => 'short',

        /*
         * Route to get shortend url with get request
         */
        'get_short_route'  => 'short',

        /*
         * Route to get status of url provided with get request
         */
        'get_stats_route'  => 'stats',

        /*
         * Route to serve Vue instance
         */
        'vue_route'        => '{any?}',
    ]
];

前端配置

第一步

首先需要发布前端文件(js、css和视图)

php artisan vendor:publish --provider="MuhamedDidovic\Shortener\ShortenerServiceProvider" --tag="shortener::views"
php artisan vendor:publish --provider="MuhamedDidovic\Shortener\ShortenerServiceProvider" --tag="shortener::assets"

上面的第一个命令用于视图文件,它将放置在resources/views/vendor/文件夹中,名称为shortener.blade.php

它应该像这样

第二个命令是将js和css发布到resourcespublic文件夹。

当我们更改resources文件夹中的js或css文件时,需要这样做,这些文件将被捆绑并放置在public文件夹中

resources文件夹中的js和css文件应该像这样

resources文件夹生成的捆绑文件将被放置在public文件夹中

第二步

需要在package.json文件中安装npm依赖项

npm install vue-template-compiler@2.6.10 clipboard@1.6.1 pluralize@4.0.0 vue@2.2.6 vue-axios@2.1.4 vue-router@2.3.1 vuex@2.3.1 --save-dev

第三步

需要在webpack.mix.js中添加文件到捆绑

mix.js('resources/js/shortener.js', 'public/js/shortener.js')
    .sass('resources/sass/shortener.scss', 'public/css/shortener.css');

第四步

运行laravel mix,您可以在package.json的scripts部分查看命令,例如

npm run dev

或监视器

npm run watch

可用路由及其说明

该包包含4个路由(您不需要将它们包含在您的路由中)

Route::group(
    [
        'namespace'  => 'MuhamedDidovic\Shortener\Controllers',
        'middleware' => 'MuhamedDidovic\Shortener\Middleware\ModifiesUrlRequestData',
    ],
    function () {
        //save url
        Route::post(config('shortener.routes.post_short_route'), 'LinkController@store');
        //get url
        Route::get(config('shortener.routes.get_short_route'), 'LinkController@show');
        //get stats
        Route::get(config('shortener.routes.get_stats_route'), 'LinkStatsController@show');
        //ROUTE for vue
        Route::get(config('shortener.routes.vue_route'), 'SinglePageController@show')->where('any', '.*');
    }
);

所有端点都存储在shortener.php配置文件中。前三个路由是基于API的,并返回JSON结果。

web.php中的前两个路由具有('short')默认端点选项,第一个用于存储和缩短URL,第二个用于通过我们提供的代码检索URL。第三个路由具有('stats')默认端点选项,用于获取特定URL的统计数据。

最后一个第四个路由('{any?}')是默认端点选项,用于Vue.js显示视图。

变更日志

有关最近更改的详细信息,请参阅变更日志

测试

$ composer test

贡献

有关详细信息,请参阅贡献指南行为准则

安全

如果您发现任何与安全相关的问题,请通过电子邮件muhamed.didovic@gmail.com而不是使用问题跟踪器。

致谢

许可协议

MIT许可协议(MIT)。有关更多信息,请参阅许可文件