Laravel-5.1 geonames,使用 Composer 克隆存储库
Laravel-5.1 geonames, cloning repository using Composer
我想为网站上的地址使用地理名称。我正在使用 Laravel 5.1 开发它。我发现这作为入门教程很有用:Ipalaus Laravel 4.* for Geonames.
由于版本不兼容,我联系了该项目的一位同事,他将我重定向到他的存储库:My conversation with Javier Martinz on L-5.1 compatible update。简单的解决方案是添加我在 composer.json
中所做的他的存储库。在 运行 之后,我期待看到克隆的存储库并具有用于 geonames 的 artisan
命令,令我惊讶的是什么都没有。我没有使用像 git 这样的版本控制,只是在本地存储。
如何克隆存储库?我已经写信给他,但暂时没有回复。我猜他放假了。
这是我的 composer.json 文件
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.1.*",
"laravelcollective/html": "5.1.*",
"laravel/socialite": "^2.0",
"toin0u/geocoder-laravel": "@stable",
"ext-zip": "*",
"illuminate/config": ">=5.1.0",
"illuminate/console": ">=5.1.0",
"illuminate/database": ">=5.1.0",
"illuminate/filesystem": ">=5.1.0",
"illuminate/support": ">=5.1.0",
"symfony/process": "2.7.*",
"guzzle/http": "^3.9",
"guzzlehttp/guzzle": "~4.0"
},
"require-dev": {
"fzaninotto/faker": "~1.4",
"mockery/mockery": "0.9.*",
"phpunit/phpunit": "~4.0",
"phpspec/phpspec": "~2.1"
},
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\": "app/"
}
},
"autoload-dev": {
"classmap": [
"tests/TestCase.php"
]
},
"repositories": [
{
"type": "vcs",
"url": "https://github.com/JavierMartinz/geonames"
}
],
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"pre-update-cmd": [
"php artisan clear-compiled"
],
"post-update-cmd": [
"php artisan optimize"
],
"post-root-package-install": [
"php -r \"copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
}
}
这是我在添加时得到的错误:"ipalaus/geonames": "1.0.*"
C:\Users\ken4ward\Documents\xampp\htdocs\tradersmart>composer update
> php artisan clear-compiled
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Removing guzzlehttp/psr7 (1.2.1)
- Removing psr/http-message (1.0)
- Removing guzzlehttp/promises (1.0.3)
- Installing guzzlehttp/streams (2.1.0)
Downloading: 100%
- Removing guzzlehttp/guzzle (6.1.1)
- Installing guzzlehttp/guzzle (4.2.3)
Downloading: 100%
- Removing laravel/socialite (v2.0.14)
- Installing laravel/socialite (v2.0.4)
Downloading: 100%
Writing lock file
Generating autoload files
> php artisan optimize
Generating optimized class loader
C:\Users\ken4ward\Documents\xampp\htdocs\tradersmart>composer update
> php artisan clear-compiled
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- ipalaus/geonames v1.0.0 requires illuminate/config 4.2.* -> no matching pa
ckage found.
- ipalaus/geonames v1.0.1 requires illuminate/config 4.2.* -> no matching pa
ckage found.
- ipalaus/geonames v1.0.2 requires illuminate/config 4.2.* -> no matching pa
ckage found.
- ipalaus/geonames v1.0.1 requires illuminate/config 4.2.* -> no matching pa
ckage found.
- ipalaus/geonames v1.0.0 requires illuminate/config 4.2.* -> no matching pa
ckage found.
- Installation request for ipalaus/geonames 1.0.* -> satisfiable by ipalaus/
geonames[v1.0.0, v1.0.1, v1.0.2].
Potential causes:
- A typo in the package name
- The package is not available in a stable-enough version according to your min
imum-stability setting
see <https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> f
or more details.
Read <https://getcomposer.org/doc/articles/troubleshooting.md> for further commo
n problems.
看到您的 composer.json
后,我想知道这是否只是将 Git 存储库注册为可用源,而不是专门请求它作为依赖项。我因此 ran this search and found this blog article.
总结那篇文章的内容,它说 Git 回购依赖项需要使用单词 dev-
后跟您想要的分支名称(这通常是 master
,但可以变化)。因此,在您的情况下,require
JSON 数组中的解决方案是:
"ipalaus/geonames": "dev-master"
从 pull request 的对话来看,你想要的更改似乎已经被合并了。因此,您现在应该能够按照这些说明删除 Git 存储库:
you should be able to required v2.0 for Laravel 5.1 composer require ~2.0 or v3.0 for Laravel 5.2 composer require ~3.0
如果是的话,你现在可以使用 Packagist 版本了,不要觉得你的时间浪费了——学习如何使用有特殊要求(比如 repo 依赖)的 Composer 确实是值得的。
我也试过用ipalaus/geonames,但不是很好。它没有运行,我几个月前创建的问题票没有得到回应。所以我制作了 my own package,它的导入速度比 ipalaus/geonames 快得多,而且已经更完整了。用 ipalaus/geonames 导入数据库花了 15 个小时,而我的包只用了 30 分钟。
我想为网站上的地址使用地理名称。我正在使用 Laravel 5.1 开发它。我发现这作为入门教程很有用:Ipalaus Laravel 4.* for Geonames.
由于版本不兼容,我联系了该项目的一位同事,他将我重定向到他的存储库:My conversation with Javier Martinz on L-5.1 compatible update。简单的解决方案是添加我在 composer.json
中所做的他的存储库。在 运行 之后,我期待看到克隆的存储库并具有用于 geonames 的 artisan
命令,令我惊讶的是什么都没有。我没有使用像 git 这样的版本控制,只是在本地存储。
如何克隆存储库?我已经写信给他,但暂时没有回复。我猜他放假了。
这是我的 composer.json 文件
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.1.*",
"laravelcollective/html": "5.1.*",
"laravel/socialite": "^2.0",
"toin0u/geocoder-laravel": "@stable",
"ext-zip": "*",
"illuminate/config": ">=5.1.0",
"illuminate/console": ">=5.1.0",
"illuminate/database": ">=5.1.0",
"illuminate/filesystem": ">=5.1.0",
"illuminate/support": ">=5.1.0",
"symfony/process": "2.7.*",
"guzzle/http": "^3.9",
"guzzlehttp/guzzle": "~4.0"
},
"require-dev": {
"fzaninotto/faker": "~1.4",
"mockery/mockery": "0.9.*",
"phpunit/phpunit": "~4.0",
"phpspec/phpspec": "~2.1"
},
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\": "app/"
}
},
"autoload-dev": {
"classmap": [
"tests/TestCase.php"
]
},
"repositories": [
{
"type": "vcs",
"url": "https://github.com/JavierMartinz/geonames"
}
],
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"pre-update-cmd": [
"php artisan clear-compiled"
],
"post-update-cmd": [
"php artisan optimize"
],
"post-root-package-install": [
"php -r \"copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
}
}
这是我在添加时得到的错误:"ipalaus/geonames": "1.0.*"
C:\Users\ken4ward\Documents\xampp\htdocs\tradersmart>composer update
> php artisan clear-compiled
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Removing guzzlehttp/psr7 (1.2.1)
- Removing psr/http-message (1.0)
- Removing guzzlehttp/promises (1.0.3)
- Installing guzzlehttp/streams (2.1.0)
Downloading: 100%
- Removing guzzlehttp/guzzle (6.1.1)
- Installing guzzlehttp/guzzle (4.2.3)
Downloading: 100%
- Removing laravel/socialite (v2.0.14)
- Installing laravel/socialite (v2.0.4)
Downloading: 100%
Writing lock file
Generating autoload files
> php artisan optimize
Generating optimized class loader
C:\Users\ken4ward\Documents\xampp\htdocs\tradersmart>composer update
> php artisan clear-compiled
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- ipalaus/geonames v1.0.0 requires illuminate/config 4.2.* -> no matching pa
ckage found.
- ipalaus/geonames v1.0.1 requires illuminate/config 4.2.* -> no matching pa
ckage found.
- ipalaus/geonames v1.0.2 requires illuminate/config 4.2.* -> no matching pa
ckage found.
- ipalaus/geonames v1.0.1 requires illuminate/config 4.2.* -> no matching pa
ckage found.
- ipalaus/geonames v1.0.0 requires illuminate/config 4.2.* -> no matching pa
ckage found.
- Installation request for ipalaus/geonames 1.0.* -> satisfiable by ipalaus/
geonames[v1.0.0, v1.0.1, v1.0.2].
Potential causes:
- A typo in the package name
- The package is not available in a stable-enough version according to your min
imum-stability setting
see <https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> f
or more details.
Read <https://getcomposer.org/doc/articles/troubleshooting.md> for further commo
n problems.
看到您的 composer.json
后,我想知道这是否只是将 Git 存储库注册为可用源,而不是专门请求它作为依赖项。我因此 ran this search and found this blog article.
总结那篇文章的内容,它说 Git 回购依赖项需要使用单词 dev-
后跟您想要的分支名称(这通常是 master
,但可以变化)。因此,在您的情况下,require
JSON 数组中的解决方案是:
"ipalaus/geonames": "dev-master"
从 pull request 的对话来看,你想要的更改似乎已经被合并了。因此,您现在应该能够按照这些说明删除 Git 存储库:
you should be able to required v2.0 for Laravel 5.1 composer require ~2.0 or v3.0 for Laravel 5.2 composer require ~3.0
如果是的话,你现在可以使用 Packagist 版本了,不要觉得你的时间浪费了——学习如何使用有特殊要求(比如 repo 依赖)的 Composer 确实是值得的。
我也试过用ipalaus/geonames,但不是很好。它没有运行,我几个月前创建的问题票没有得到回应。所以我制作了 my own package,它的导入速度比 ipalaus/geonames 快得多,而且已经更完整了。用 ipalaus/geonames 导入数据库花了 15 个小时,而我的包只用了 30 分钟。