代码之家  ›  专栏  ›  技术社区  ›  Stephane

未找到类“Geocoder\Provider\GoogleMapsProvider”

  •  0
  • Stephane  · 技术社区  · 9 年前

    我试图运行一些遗留应用程序,但我遇到了地理编码器依赖的问题。

    Fatal error: Class Geocoder\Provider\GoogleMapsProvider' not found .

    <?php
    
    namespace Application\Geocoder\Provider;
    
    use Geocoder\Exception\NoResultException;
    use Geocoder\Exception\QuotaExceededException;
    use Geocoder\Exception\UnsupportedException;
    use Geocoder\Exception\InvalidCredentialsException;
    use Geocoder\HttpAdapter\HttpAdapterInterface;
    use Geocoder\Provider\GoogleMapsProvider as ExtendGoogleMapsProvider;
    
    class GoogleMapsProvider extends ExtendGoogleMapsProvider
    { <===== The error line is HERE
    

    我安装了 willdurand/geocoder 附属国:

      "require" : {
        "doctrine/doctrine-orm-module" : "0.7.0",
        "php" : ">=5.3.3",
        "gedmo/doctrine-extensions" : "2.3.8",
        "bjyoungblood/bjy-authorize" : "1.4.0",
        "doctrine/common" : "2.3.0",
        "twbs/bootstrap" : "2.3.2",
        "zf-commons/zfc-user" : "0.1.x-dev",
        "zf-commons/zfc-user-doctrine-orm" : "master-dev",
        "mwillbanks/zfc-twitter-bootstrap" : "master-dev",
        "zendframework/zendframework" : "2.2.5",
            "willdurand/geocoder": "^3.3",
        "firebase/php-jwt": "^4.0"
      },
    

    和a diagnose 命令说:

    $ php composer.phar diagnose
    Checking composer.json: FAIL
    name : invalid value (Extrapack), must match [A-Za-z0-9][A-Za-z0-9_.-]*/[A-Za-z0-9][A-Za-z0-9_.-]*
    No license specified, it is recommended to do so. For closed-source software you may use "proprietary" as license.
    require.gedmo/doctrine-extensions : exact version constraints (2.3.8) should be avoided if the package follows semantic versioning
    require.bjyoungblood/bjy-authorize : exact version constraints (1.4.0) should be avoided if the package follows semantic versioning
    require.doctrine/common : exact version constraints (2.3.0) should be avoided if the package follows semantic versioning
    require.twbs/bootstrap : exact version constraints (2.3.2) should be avoided if the package follows semantic versioning
    require.zf-commons/zfc-user-doctrine-orm : unbound version constraints (master-dev) should be avoided
    require.mwillbanks/zfc-twitter-bootstrap : unbound version constraints (master-dev) should be avoided
    require.zendframework/zendframework : exact version constraints (2.2.5) should be avoided if the package follows semantic versioning
    Checking platform settings: OK
    Checking git settings: OK
    Checking http connectivity to packagist: OK
    Checking https connectivity to packagist: OK
    Checking github.com rate limit: OK
    Checking disk free space: OK
    Checking pubkeys: 
    Tags Public Key Fingerprint: 57815BA2 7E54DC31 7ECC7CC5 573090D0  87719BA6 8F3BB723 4E5D42D0 84A14642
    Dev Public Key Fingerprint: 4AC45767 E5EC2265 2F0C1167 CBBB8A2B  0C708369 153E328C AD90147D AFE50952
    OK
    Checking composer version: OK
    

    phar 模块:

    Phar: PHP Archive support   enabled
    Phar EXT version    2.0.2
    Phar API version    1.1.1
    SVN revision    $Id: 780be432570e80dd34c1a9c217ef87ade22bf136 $
    Phar-based phar archives    enabled
    Tar-based phar archives enabled
    ZIP-based phar archives enabled
    gzip compression    enabled
    bzip2 compression   enabled
    Native OpenSSL support  enabled
    

    在源代码中令我困惑的是

    use Geocoder\Provider\GoogleMapsProvider as ExtendGoogleMapsProvider;
    

    1 回复  |  直到 9 年前
        1
  •  1
  •   localheinz    9 年前

    如果你看看 source Geocoder\Provider\GoogleMapsProvider 不存在。

    这可能表明您使用的版本比以前的旧项目更新。

    查看 changelog Provider 后缀已在中删除 3.x 线

    首先,您可能希望使用旧版本。跑

    $ composer require willdurand/geocoder:^2.8.2
    

    或者,尝试使用重命名的提供程序,但在

    use Geocoder\Provider\GoogleMaps;
    
    class GoogleMapsProvider extends GoogleMaps
    {
        // ...
    }
    

    笔记

    use Geocoder\Provider\GoogleMapsProvider as ExtendGoogleMapsProvider;
    

    以防止碰撞。

    推荐文章