jeremykenedy/laravel-packagist

v1.0.1 2019-07-10 07:21 UTC

This package is auto-updated.

Last update: 2024-09-15 11:34:35 UTC


README

Laravel Packagist

Laravel Packagist

Laravel Packagist (LaravelPackagist) 是一个用于 Laravel 5 与 Packagist API 快速轻松交互的包。

Latest Stable Version Total Downloads Travis-CI Build StyleCI Scrutinizer Build Status Scrutinizer Code Quality MadeWithLaravel.com shield License

目录

特性

要求

安装说明

  1. 在终端中从项目的根目录运行以下命令

        composer require jeremykenedy/laravel-packagist
  2. 注册包

  • Laravel 5.5 及以上版本使用包自动发现功能,无需编辑 config/app.php 文件。

  • Laravel 5.4 及以下版本在 config/app.php 中的 providers 下通过以下方式注册包

    'providers' => [
        jeremykenedy\LaravelPackagist\LaravelPackagistServiceProvider::class,
    ];
  1. 可选地,通过从项目的根目录运行以下命令发布包的视图、配置文件、资源和语言文件

发布所有资源

    php artisan vendor:publish --provider="jeremykenedy\LaravelPackagist\LaravelPackagistServiceProvider"

发布特定资源

    php artisan vendor:publish --tag=laravelpackagist-config
    php artisan vendor:publish --tag=laravelpackagist-lang

用法

  1. 将以下内容添加到调用方法的文件的开头
use jeremykenedy\LaravelPackagist\App\Services\PackagistApiServices;

文件示例

<?php

namespace App\Services\Sections;

use jeremykenedy\LaravelPackagist\App\Services\PackagistApiServices;
  1. 使用以下方式调用方法
// Vendors
PackagistApiServices::getPackagistVendorRepositoriesList('VENDOR-NAME-HERE');
PackagistApiServices::getVendorPackagesCount('VENDOR-NAME-HERE');
PackagistApiServices::getVendorsPackagesDetails('VENDOR-NAME-HERE');
PackagistApiServices::getVendorsTotalDownloads('VENDOR-NAME-HERE');
PackagistApiServices::getVendorsTotalStars('VENDOR-NAME-HERE');

// Individual Packages
PackagistApiServices::getPackageDownloads('VENDOR-NAME-HERE/PACKAGE-NAME-HERE');
PackagistApiServices::getPackageDailyDownloads('VENDOR-NAME-HERE/PACKAGE-NAME-HERE');
PackagistApiServices::getPackageMonthlyDownloads('VENDOR-NAME-HERE/PACKAGE-NAME-HERE');
PackagistApiServices::getPackageTotalDownloads('VENDOR-NAME-HERE/PACKAGE-NAME-HERE');
PackagistApiServices::getPackageTotalForks('VENDOR-NAME-HERE/PACKAGE-NAME-HERE');
PackagistApiServices::getPackageTotalOpenIssues('VENDOR-NAME-HERE/PACKAGE-NAME-HERE');
PackagistApiServices::getPackageTotalRepo('VENDOR-NAME-HERE/PACKAGE-NAME-HERE');
PackagistApiServices::getPackageTotalStars('VENDOR-NAME-HERE/PACKAGE-NAME-HERE');
PackagistApiServices::getPackageTotalWatchers('VENDOR-NAME-HERE/PACKAGE-NAME-HERE');
PackagistApiServices::getVendorsPackageDetails('VENDOR-NAME-HERE/PACKAGE-NAME-HERE');

配置

有许多可配置的选项,它们都已扩展为可以通过 .env 文件变量进行配置。因此,无需直接编辑配置文件。

<?php

return [

    /*
    |--------------------------------------------------------------------------
    | Packagist Caching Settings
    |--------------------------------------------------------------------------
    */
    'caching' => [
        'enabled'               => env('PACKAGIST_CACHE_ENABLED', TRUE),
        'vendorListCacheTime'   => env('PACKAGIST_VENDOR_LIST_CACHE_TIME_MINUTES', 100),
        'vendorItemCacheTime'   => env('PACKAGIST_VENDOR_ITEM_CACHE_TIME_MINUTES', 100),
    ],

    /*
    |--------------------------------------------------------------------------
    | Packagist CURL Settings
    |--------------------------------------------------------------------------
    */
    'curl' => [
        'timeout'       => env('PACKAGIST_CURL_TIMEOUT', 30),
        'maxredirects'  => env('PACKAGIST_CURL_MAX_REDIRECTS', 10),
    ],

    /*
    |--------------------------------------------------------------------------
    | Packagist API URLS
    |--------------------------------------------------------------------------
    */
    'urls' => [
        'vendorBase' => env('PACKAGIST_API_VENDOR_URL_BASE', 'https://packagist.org.cn/packages/list.json?vendor='),
        'projectPreFix' => env('PACKAGIST_API_VENDOR_PROJECT_BASE_PREFIX', 'https://packagist.org.cn/packages/'),
        'projectPostFix' => env('PACKAGIST_API_VENDOR_PROJECT_BASE_POSTFIX', '.json'),
    ],

    /*
    |--------------------------------------------------------------------------
    | Packagist default vendor
    |--------------------------------------------------------------------------
    */
    'vendor' => [
        'default' => env('PACKAGIST_DEFAULT_VENDOR', 'jeremykenedy'),
    ],

    /*
    |--------------------------------------------------------------------------
    | Packagist logging
    |--------------------------------------------------------------------------
    */
    'logging' => [
        'curlErrors' => env('PACKAGIST_LOG_CURL_ERROR', TRUE),
    ],
环境文件
PACKAGIST_CACHE_ENABLED=TRUE
PACKAGIST_VENDOR_LIST_CACHE_TIME_MINUTES=100
PACKAGIST_VENDOR_ITEM_CACHE_TIME_MINUTES=100
PACKAGIST_CURL_TIMEOUT=30
PACKAGIST_CURL_MAX_REDIRECTS=10
PACKAGIST_API_VENDOR_URL_BASE='https://packagist.org.cn/packages/list.json?vendor='
PACKAGIST_API_VENDOR_PROJECT_BASE_PREFIX='https://packagist.org.cn/packages/'
PACKAGIST_API_VENDOR_PROJECT_BASE_POSTFIX='.json'
PACKAGIST_DEFAULT_VENDOR='jeremykenedy'
PACKAGIST_LOG_CURL_ERROR=TRUE

文件树

├── .gitignore..git
├── .travis.yml
├── LICENSE
├── README.md
├── composer.json
├── phpunit.xml
└── src
    ├── App
    │   ├── Services
    │   │   └── PackagistApiServices.php
    │   └── Traits
    │       └── PackagistApiTrait.php
    ├── LaravelPackagistFacade.php
    ├── LaravelPackagistServiceProvider.php
    ├── config
    │   └── laravelpackagist.php
    └── resources
        └── lang
            └── en
                └── laravelpackagist.php
  • 可以使用 brew 安装 tree 命令:brew install tree
  • 使用以下命令生成的文件树:tree -a -I '.git|node_modules|vendor|storage|tests'

许可证

Laravel Packagist 根据 MIT 许可证 发布。享受使用吧!