laravel/laravel和laravel/framework有何区别?

  在安装laravel的时候,我们一般是download github上的laravel/laravel,随后执行composer install,在这个过程中,你会发现composer其中的一项工作是

安装laravel/framework到vendor目录中,(为了看清楚这个过程,我们可以执行composer install --dry-run模拟安装dependency的过程)。那么laravel/laravel和laravel/framework到底是什么关系呢?

 (master)*$ composer install --dry-run
Warning: This development build of composer is over 30 days old. It is recommended to update it by running "/usr/local/bin/composer self-update" to get the latest version.
Loading composer repositories with package information
Installing dependencies (including require-dev)
  - Installing vlucas/phpdotenv (v1.1.1)                                                                                                                                                 

  - Installing symfony/var-dumper (v2.6.9)                                                                                                                                               

  - Installing symfony/translation (v2.6.9)                                                                                                                                              

  - Installing symfony/security-core (v2.6.9)                                                                                                                                            

  - Installing symfony/routing (v2.6.9)                                                                                                                                                  

  - Installing symfony/process (v2.6.9)                                                                                                                                                  

  - Installing psr/log (1.0.0)                                                                                                                                                           

  - Installing symfony/debug (v2.6.9)
  - Installing symfony/http-foundation (v2.6.9)                                                                                                                                          

  - Installing symfony/event-dispatcher (v2.7.0)                                                                                                                                         

  - Installing symfony/http-kernel (v2.6.9)                                                                                                                                              

  - Installing symfony/finder (v2.6.9)                                                                                                                                                   

  - Installing symfony/console (v2.6.9)                                                                                                                                                  

  - Installing swiftmailer/swiftmailer (v5.4.0)                                                                                                                                          

  - Installing jakub-onderka/php-console-color (0.1)                                                                                                                                     

  - Installing jakub-onderka/php-console-highlighter (v0.3.1)                                                                                                                            

  - Installing dnoegel/php-xdg-base-dir (0.1)                                                                                                                                            

  - Installing nikic/php-parser (v1.3.0)                                                                                                                                                 

  - Installing psy/psysh (v0.4.4)                                                                                                                                                        

  - Installing nesbot/carbon (1.19.0)                                                                                                                                                    

  - Installing mtdowling/cron-expression (v1.0.4)                                                                                                                                        

  - Installing monolog/monolog (1.13.1)                                                                                                                                                  

  - Installing league/flysystem (1.0.3)                                                                                                                                                  

  - Installing jeremeamia/SuperClosure (2.1.0)
  - Installing ircmaxell/password-compat (v1.0.4)                                                                                                                                        

  - Installing doctrine/inflector (v1.0.1)                                                                                                                                               

  - Installing danielstjules/stringy (1.9.0)                                                                                                                                             

  - Installing symfony/filesystem (v2.7.0)                                                                                                                                               

  - Installing classpreloader/classpreloader (1.4.0)                                                                                                                                     

  - Installing laravel/framework (v5.0.32)                                                                                                                                               

  - Installing sebastian/version (1.0.5)                                                                                                                                                 

  - Installing sebastian/global-state (1.0.0)                                                                                                                                            

  - Installing sebastian/recursion-context (1.0.0)                                                                                                                                       

  - Installing sebastian/exporter (1.2.0)                                                                                                                                                

  - Installing sebastian/environment (1.2.2)                                                                                                                                             

  - Installing sebastian/diff (1.3.0)                                                                                                                                                    

  - Installing sebastian/comparator (1.1.1)                                                                                                                                              

  - Installing symfony/yaml (v2.7.0)                                                                                                                                                     

  - Installing doctrine/instantiator (1.0.4)                                                                                                                                             

  - Installing phpdocumentor/reflection-docblock (2.0.4)                                                                                                                                 

  - Installing phpspec/prophecy (v1.4.1)
  - Installing phpunit/php-text-template (1.2.0)                                                                                                                                         

  - Installing phpunit/phpunit-mock-objects (2.3.3)                                                                                                                                      

  - Installing phpunit/php-timer (1.0.5)                                                                                                                                                 

  - Installing phpunit/php-token-stream (1.4.1)                                                                                                                                          

  - Installing phpunit/php-file-iterator (1.4.0)                                                                                                                                         

  - Installing phpunit/php-code-coverage (2.1.3)                                                                                                                                         

  - Installing phpunit/phpunit (4.7.0)                                                                                                                                                   

  - Installing phpspec/php-diff (v1.0.2)                                                                                                                                                 

  - Installing phpspec/phpspec (2.2.1)                                                                                                                                                   

symfony/var-dumper suggests installing ext-symfony_debug ()
symfony/translation suggests installing symfony/config ()
symfony/security-core suggests installing symfony/validator (For using the user password constraint)
symfony/security-core suggests installing symfony/expression-language (For using the expression voter)
symfony/routing suggests installing symfony/config (For using the all-in-one router or any loader)
symfony/routing suggests installing symfony/expression-language (For using expression matching)
symfony/routing suggests installing doctrine/annotations (For using the annotation loader)
symfony/event-dispatcher suggests installing symfony/dependency-injection ()
symfony/http-kernel suggests installing symfony/browser-kit ()
symfony/http-kernel suggests installing symfony/class-loader ()
symfony/http-kernel suggests installing symfony/config ()
symfony/http-kernel suggests installing symfony/dependency-injection ()
psy/psysh suggests installing ext-posix (If you have PCNTL, you‘ll want the POSIX extension as well.)
psy/psysh suggests installing ext-pdo-sqlite (The doc command requires SQLite to work.)
monolog/monolog suggests installing graylog2/gelf-php (Allow sending log messages to a GrayLog2 server)
monolog/monolog suggests installing raven/raven (Allow sending log messages to a Sentry server)
monolog/monolog suggests installing doctrine/couchdb (Allow sending log messages to a CouchDB server)
monolog/monolog suggests installing ruflin/elastica (Allow sending log messages to an Elastic Search server)
monolog/monolog suggests installing videlalvaro/php-amqplib (Allow sending log messages to an AMQP server using php-amqplib)
monolog/monolog suggests installing ext-amqp (Allow sending log messages to an AMQP server (1.0+ required))
monolog/monolog suggests installing ext-mongo (Allow sending log messages to a MongoDB server)
monolog/monolog suggests installing aws/aws-sdk-php (Allow sending log messages to AWS services like DynamoDB)
monolog/monolog suggests installing rollbar/rollbar (Allow sending log messages to Rollbar)
league/flysystem suggests installing predis/predis (Allows you to use Predis for caching)
league/flysystem suggests installing league/flysystem-eventable-filesystem (Allows you to use EventableFilesystem)
league/flysystem suggests installing league/flysystem-rackspace (Allows you to use Rackspace Cloud Files)
league/flysystem suggests installing league/flysystem-copy (Allows you to use Copy.com storage)
league/flysystem suggests installing league/flysystem-azure (Allows you to use Windows Azure Blob storage)
league/flysystem suggests installing league/flysystem-webdav (Allows you to use WebDAV storage)
league/flysystem suggests installing league/flysystem-aws-s3-v2 (Allows you to use S3 storage with AWS SDK v2)
league/flysystem suggests installing league/flysystem-aws-s3-v3 (Allows you to use S3 storage with AWS SDK v3)
league/flysystem suggests installing league/flysystem-dropbox (Allows you to use Dropbox storage)
league/flysystem suggests installing league/flysystem-cached-adapter (Flysystem adapter decorator for metadata caching)
league/flysystem suggests installing league/flysystem-sftp (Allows you to use SFTP server storage via phpseclib)
league/flysystem suggests installing league/flysystem-ziparchive (Allows you to use ZipArchive adapter)
laravel/framework suggests installing aws/aws-sdk-php (Required to use the SQS queue driver and SES mail driver (~2.4).)
laravel/framework suggests installing doctrine/dbal (Required to rename columns and drop SQLite columns (~2.4).)
laravel/framework suggests installing guzzlehttp/guzzle (Required to use the Mailgun and Mandrill mail drivers (~5.0).)
laravel/framework suggests installing iron-io/iron_mq (Required to use the iron queue driver (~1.5).)
laravel/framework suggests installing league/flysystem-aws-s3-v2 (Required to use the Flysystem S3 driver (~1.0).)
laravel/framework suggests installing league/flysystem-rackspace (Required to use the Flysystem Rackspace driver (~1.0).)
laravel/framework suggests installing pda/pheanstalk (Required to use the beanstalk queue driver (~3.0).)
laravel/framework suggests installing predis/predis (Required to use the redis cache and queue drivers (~1.0).)
sebastian/global-state suggests installing ext-uopz (*)
phpdocumentor/reflection-docblock suggests installing dflydev/markdown (~1.0)
phpdocumentor/reflection-docblock suggests installing erusev/parsedown (~1.0)
phpunit/phpunit-mock-objects suggests installing ext-soap (*)
phpunit/php-code-coverage suggests installing ext-xdebug (>=2.2.1)
phpunit/phpunit suggests installing phpunit/php-invoker (~1.1)
phpspec/phpspec suggests installing phpspec/nyan-formatters (~1.0 – Adds Nyan formatters)                                                                                                

实际上larave/laravel只是一个当你创建一个新项目时你得到的应用框架,比如使用命令:

composer create-project laravel/laravel --prefer-dist

注意: composer create-project命令从功能上来说等于 git clone laravel/laravel和一个composer install命令。

那么composer是如何知道一个package的repo地址的呢?

http://grossi.io/2013/creating-your-first-composer-packagist-package/

laravel/laravel实际上是一个当你创建一个新项目时所需要的应用框架skeleton.她提供一个推荐的默认文件结构(你当然可以不用这个文件结构哦)。这个repo包含默认的config files,controllers,routes等,同时包含用于bootstraping应用的代码。

她也包含一个composer.json文件,这个文件定义了实际的laravel framework作为laravel/laravel的dependency:

"require": {
    "laravel/framework": "5.0.*"
},

laravel/framework是实际的framework source。正如framework的repo中的readme.md所说“这个repo包含了laravel fraemworkd的core code(实际上就是一些类库),如果你希望使用laravel 5来构建一个应用,请访问laravel/laravel repo”,也就是说可以理解laravel/framework本身就是一个component,可以被laravel/laravel来使用(提供bootstrap应用,将laravel/framework各个组件组合在一起最终形成一个application),当然也可以在其他的应用中以一个独立的component来使用。

另外一个说法也对理解他们之间的关系有所帮助:

laravel/laravel is the part of the app that you work with yourself(controllers,config,routes.php,resources,database etc)while laravel/framework is the "core" of laravel, stuff that you don‘t change.

laravel/laravel is the application template/skeleton, and is the starting point for laravel apps. Laravel/framework is the kernel, which contains the actual framework components itself, and is downloaded by composer into your application template/skeleton.

参考以下文章:

http://grossi.io/2013/creating-your-first-composer-packagist-package/

时间: 2024-08-22 16:06:32

laravel/laravel和laravel/framework有何区别?的相关文章

向军2017年最新laravel开发宝典 laravel结合vue与接口开发webapp实战视频教程

课程介绍:Laravel是一套简洁.优雅的PHP Web开发框架(PHP Web Framework).它不仅可以让我们从面条一样杂乱的代码中解脱出来,还可以帮我们构建一个完美的网络APP,而且每行代码都可以简洁.富于表达力.在Laravel中已经具有了一套高级的PHP ActiveRecord实现 -- Eloquent ORM.它能方便的将"约束(constraints)"应用到关系的双方,这样你就具有了对数据的完全控制,而且享受到ActiveRecord的所有便利.Eloquen

Laravel Request 和 Laravel Input 常用操作方法

Laravel Input  常用操作方法 Input::get('key'); 指定默认值 Input::get('key', 'default'); Input::has('key'); Input::all(); 只取回 'foo' 和 'bar',返回数组 Input::only('foo', 'bar'); 取除了 'foo' 的所有用户输入数组 Input::except('foo'); 会话周期内 Input 清除会话周期内的输入 Input::flash(); 清除会话周期内的指

How to Install Laravel PHP Framework on CentOS 7 / Ubuntu 15.04

composer官网:https://getcomposer.org/ laravel官网:https://laravel.com/docs/5.2/installation Hi All, In this article we are going to setup Laravel on CentOS 7 and Ubuntu 15.04. If you are a PHP web developer then you don't need to worry about of all moder

win7安装laravel

使用Packagist 镜像 建立一个composer.json文件,内容如下: { "name": "laravel/laravel", "description": "The Laravel Framework.", "keywords": ["framework", "laravel"], "license": "MIT"

How Use PHPUnit Test in Laravel 5.1

Access all tutorials in sprocket icon. June 12, 2015 from author Bill Keck. Sometimes for beginners, the idea of PHPUnit testing code can be scary. You find yourself having to install the test framework, learn a whole new series of commands and metho

Laravel分页

Laravel使用的过程中,有些功能把前端页面的表达"写死了",比如分页的翻页按钮! 当然你会说Laravel的Bootstrap样式也很好看啊,但是实际项目中,翻页按钮常常需要满足的客户的需要,特别在开发一款支持手机适配的Web APP,更是需要使用自定义的样式. 所以,学习一样东西不能一知半解,而是究其原理. 先来看看Laravel是怎么分页的,生成分页按钮的代码究竟写在了哪里? Laravel目录\vendor\laravel\framework\src\Illuminate\P

Linux laravel安装

第一步:安装php套件 目前为止laravel是5.1版本,需要对php有要求,要php5.59以上 The Laravel framework has a few system requirements. Of course, all of these requirements are satisfied by the Laravel Homestead virtual machine: * PHP >= 5.5.9 * OpenSSL PHP Extension * PDO PHP Exte

laravel 入门

Laravel5.0学习--01 入门 本文以laravel5.0.22为例. 生产环境建议使用laravel5.1版本,因为该版本是长期支持版本.5.1文档更详细:http://laravel-china.org/docs/5.1. 环境需求 Laravel5.0 框架有一些系统上的需求: PHP 版本 >= 5.4 Mcrypt PHP 扩展 OpenSSL PHP 扩展 Mbstring PHP 扩展 Tokenizer PHP 扩展 在 PHP 5.5 之后, 有些操作系统需要手动安装

laravel安装笔记 (转)

一.安装composer 安装之前将\php\php.ini文件中的php_openssl.dll扩展库开启,否则composer在安装过程中会出现错误提示. (我在安装过程中发现apache目录下的php.ini最好也开启php_openssl.dll,就是讲前面的‘:’号去掉) composer下载地址:https://getcomposer.org/ windows下载地址:https://getcomposer.org/Composer-Setup.exe 二.下载Laravel最新框架