前言


一、良心资料

  • 英文

Laravel 框架:https://laravel.com/

 
  • 中文

轻松学会Laravel-基础篇

轻松学会Laravel-中级篇

轻松学会Laravel-高级篇

二、简介

  • 优势

验证、路由、session、缓存、数据库迁移、单元测试等常见功能。

且 MVC模式。

  • 版本

https://laravel.com/docs/5.6

  • 性价比

Ref:php7 vs java8 vs nodejs5 vs lua5.2 计算性能比较

三、安装与配置

  • 版本要求

  • 安装 phpStorm

Ref: phpstorm的安装和破解

Ref: PhpStorm破解版及使用教程【有快捷键】

  • 安装 php 7

Ref: Upgrade to PHP 7.x on Ubuntu 14.04 LTS

  1. php --version
  2. sudo apt-get update
  3. sudo add-apt-repository ppa:ondrej/php
  4. sudo apt-get install python-software-properties
  5. sudo apt-get update
  6. sudo apt-get install php7. # For PHP 7.0
  7. sudo apt-get install php7. # For PHP 7.1
  8. php --version
  • 安装 Composer

Goto: https://getcomposer.org/download/

执行 Download Composer 的内容。

  1. # 查看composer安装结果
    lolo@lolo-UX303UB$ php composer.phar
  • 配置 Laravel

当然,具体要求要看:https://laravel.com/docs/5.6

[1] 可能遇到的zip的安装问题:http://opencode.co.kr/php_tips/255, 解决方案:

  1. # For php v7.
  2. sudo apt-get install php7.-zip
  3.  
  4. # For php v7.
  5. sudo apt-get install php7.-zip

[2] 配置没问题就可以成功安装laravel。

  1. unsw@unsw-UX303UB$ php composer.phar global require "laravel/installer"

[3] 安装结果,多了vendor文件夹。

[4] 安装结果,有了laravel文件夹

四、第一个 Laravel 项目

8:34 / 20:25

  1. sudo chmod -R /var/www/html/
  2. php composer.phar create-project --prefer-dist laravel/laravel /var/www/html/my_larvavel

注意,composer.phar 所在路径下运行上述命令才可以。

  1. unsw@unsw-UX303UB$ php composer.phar create-project --prefer-dist laravel/laravel /var/www/html/my_larvavel
  2. Installing laravel/laravel (v5.6.21)
  3. - Installing laravel/laravel (v5.6.21): Loading from cache
  4. Created project in /var/www/html/my_larvavel
  5. > @php -r "file_exists('.env') || copy('.env.example', '.env');"
  6. Loading composer repositories with package information
  7. Updating dependencies (including require-dev)
  8. Package operations: installs, updates, removals
  9. - Installing vlucas/phpdotenv (v2.4.0): Downloading (%)
  10. - Installing symfony/css-selector (v4.1.1): Downloading (%)
  11. - Installing tijsverkoyen/css-to-inline-styles (2.2.): Downloading (%)
  12. - Installing symfony/polyfill-php72 (v1.8.0): Downloading (%)
  13. - Installing symfony/polyfill-mbstring (v1.8.0): Loading from cache
  14. - Installing symfony/var-dumper (v4.1.1): Downloading (%)
  15. - Installing symfony/routing (v4.1.1): Downloading (%)
  16. - Installing symfony/process (v4.1.1): Loading from cache
  17. - Installing symfony/polyfill-ctype (v1.8.0): Loading from cache
  18. - Installing symfony/http-foundation (v4.1.1): Downloading (%)
  19. - Installing symfony/event-dispatcher (v4.1.1): Downloading (%)
  20. - Installing psr/log (1.0.): Downloading (%)
  21. - Installing symfony/debug (v4.1.1): Downloading (%)
  22. - Installing symfony/http-kernel (v4.1.1): Downloading (%)
  23. - Installing paragonie/random_compat (v2.0.15): Downloading (%)
  24. - Installing symfony/finder (v4.1.1): Downloading (%)
  25. - Installing symfony/console (v4.1.1): Loading from cache
  26. - Installing doctrine/lexer (v1.0.1): Downloading (%)
  27. - Installing egulias/email-validator (2.1.): Downloading (%)
  28. - Installing swiftmailer/swiftmailer (v6.0.2): Downloading (%)
  29. - Installing ramsey/uuid (3.7.): Downloading (%)
  30. - Installing psr/simple-cache (1.0.): Downloading (%)
  31. - Installing psr/container (1.0.): Downloading (%)
  32. - Installing symfony/translation (v4.1.1): Downloading (%)
  33. - Installing nesbot/carbon (1.25.): Downloading (%)
  34. - Installing monolog/monolog (1.23.): Downloading (%)
  35. - Installing league/flysystem (1.0.): Downloading (%)
  36. - Installing erusev/parsedown (1.7.): Downloading (%)
  37. - Installing dragonmantank/cron-expression (v2.2.0): Downloading (%)
  38. - Installing doctrine/inflector (v1.3.0): Downloading (%)
  39. - Installing laravel/framework (v5.6.26): Downloading (%)
  40. - Installing fideloper/proxy (4.0.): Downloading (%)
  41. - Installing nikic/php-parser (v4.0.2): Downloading (%)
  42. - Installing jakub-onderka/php-console-color (0.1): Downloading (%)
  43. - Installing jakub-onderka/php-console-highlighter (v0.3.2): Downloading (%)
  44. - Installing dnoegel/php-xdg-base-dir (0.1): Downloading (%)
  45. - Installing psy/psysh (v0.9.6): Downloading (%)
  46. - Installing laravel/tinker (v1.0.7): Downloading (%)
  47. - Installing fzaninotto/faker (v1.7.1): Downloading (%)
  48. - Installing hamcrest/hamcrest-php (v2.0.0): Downloading (%)
  49. - Installing mockery/mockery (1.1.): Downloading (%)
  50. - Installing filp/whoops (2.2.): Downloading (%)
  51. - Installing nunomaduro/collision (v2.0.3): Downloading (%)
  52. - Installing sebastian/version (2.0.): Downloading (%)
  53. - Installing sebastian/resource-operations (1.0.): Downloading (%)
  54. - Installing sebastian/object-reflector (1.1.): Downloading (%)
  55. - Installing sebastian/recursion-context (3.0.): Downloading (%)
  56. - Installing sebastian/object-enumerator (3.0.): Downloading (%)
  57. - Installing sebastian/global-state (2.0.): Downloading (%)
  58. - Installing sebastian/exporter (3.1.): Downloading (%)
  59. - Installing sebastian/environment (3.1.): Downloading (%)
  60. - Installing sebastian/diff (3.0.): Downloading (%)
  61. - Installing sebastian/comparator (3.0.): Downloading (%)
  62. - Installing phpunit/php-timer (2.0.): Downloading (%)
  63. - Installing phpunit/php-text-template (1.2.): Downloading (%)
  64. - Installing phpunit/php-file-iterator (2.0.): Downloading (%)
  65. - Installing theseer/tokenizer (1.1.): Downloading (%)
  66. - Installing sebastian/code-unit-reverse-lookup (1.0.): Downloading (%)
  67. - Installing phpunit/php-token-stream (3.0.): Downloading (%)
  68. - Installing phpunit/php-code-coverage (6.0.): Downloading (%)
  69. - Installing doctrine/instantiator (1.1.): Downloading (%)
  70. - Installing webmozart/assert (1.3.): Downloading (%)
  71. - Installing phpdocumentor/reflection-common (1.0.): Downloading (%)
  72. - Installing phpdocumentor/type-resolver (0.4.): Downloading (%)
  73. - Installing phpdocumentor/reflection-docblock (4.3.): Downloading (%)
  74. - Installing phpspec/prophecy (1.7.): Downloading (%)
  75. - Installing phar-io/version (1.0.): Downloading (%)
  76. - Installing phar-io/manifest (1.0.): Downloading (%)
  77. - Installing myclabs/deep-copy (1.8.): Downloading (%)
  78. - Installing phpunit/phpunit (7.2.): Downloading (%)
  79. symfony/var-dumper suggests installing ext-intl (To show region name in time zone dump)
  80. symfony/routing suggests installing doctrine/annotations (For using the annotation loader)
  81. symfony/routing suggests installing symfony/config (For using the all-in-one router or any loader)
  82. symfony/routing suggests installing symfony/dependency-injection (For loading routes from a service)
  83. symfony/routing suggests installing symfony/expression-language (For using expression matching)
  84. symfony/routing suggests installing symfony/yaml (For using the YAML loader)
  85. symfony/event-dispatcher suggests installing symfony/dependency-injection ()
  86. symfony/http-kernel suggests installing symfony/browser-kit ()
  87. symfony/http-kernel suggests installing symfony/config ()
  88. symfony/http-kernel suggests installing symfony/dependency-injection ()
  89. paragonie/random_compat suggests installing ext-libsodium (Provides a modern crypto API that can be used to generate random bytes.)
  90. symfony/console suggests installing symfony/lock ()
  91. egulias/email-validator suggests installing ext-intl (PHP Internationalization Libraries are required to use the SpoofChecking validation)
  92. ramsey/uuid suggests installing ircmaxell/random-lib (Provides RandomLib for use with the RandomLibAdapter)
  93. ramsey/uuid suggests installing ext-libsodium (Provides the PECL libsodium extension for use with the SodiumRandomGenerator)
  94. ramsey/uuid suggests installing ext-uuid (Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator)
  95. ramsey/uuid suggests installing moontoast/math (Provides support for converting UUID to -bit integer (in string form).)
  96. ramsey/uuid suggests installing ramsey/uuid-doctrine (Allows the use of Ramsey\Uuid\Uuid as Doctrine field type.)
  97. ramsey/uuid suggests installing ramsey/uuid-console (A console application for generating UUIDs with ramsey/uuid)
  98. symfony/translation suggests installing symfony/config ()
  99. symfony/translation suggests installing symfony/yaml ()
  100. monolog/monolog suggests installing aws/aws-sdk-php (Allow sending log messages to AWS services like DynamoDB)
  101. monolog/monolog suggests installing doctrine/couchdb (Allow sending log messages to a CouchDB server)
  102. monolog/monolog suggests installing ext-amqp (Allow sending log messages to an AMQP server (1.0+ required))
  103. monolog/monolog suggests installing ext-mongo (Allow sending log messages to a MongoDB server)
  104. monolog/monolog suggests installing graylog2/gelf-php (Allow sending log messages to a GrayLog2 server)
  105. monolog/monolog suggests installing mongodb/mongodb (Allow sending log messages to a MongoDB server via PHP Driver)
  106. monolog/monolog suggests installing php-amqplib/php-amqplib (Allow sending log messages to an AMQP server using php-amqplib)
  107. monolog/monolog suggests installing php-console/php-console (Allow sending log messages to Google Chrome)
  108. monolog/monolog suggests installing rollbar/rollbar (Allow sending log messages to Rollbar)
  109. monolog/monolog suggests installing ruflin/elastica (Allow sending log messages to an Elastic Search server)
  110. monolog/monolog suggests installing sentry/sentry (Allow sending log messages to a Sentry server)
  111. league/flysystem suggests installing league/flysystem-aws-s3-v2 (Allows you to use S3 storage with AWS SDK v2)
  112. league/flysystem suggests installing league/flysystem-aws-s3-v3 (Allows you to use S3 storage with AWS SDK v3)
  113. league/flysystem suggests installing league/flysystem-azure (Allows you to use Windows Azure Blob storage)
  114. league/flysystem suggests installing league/flysystem-cached-adapter (Flysystem adapter decorator for metadata caching)
  115. league/flysystem suggests installing league/flysystem-eventable-filesystem (Allows you to use EventableFilesystem)
  116. league/flysystem suggests installing league/flysystem-rackspace (Allows you to use Rackspace Cloud Files)
  117. league/flysystem suggests installing league/flysystem-sftp (Allows you to use SFTP server storage via phpseclib)
  118. league/flysystem suggests installing league/flysystem-webdav (Allows you to use WebDAV storage)
  119. league/flysystem suggests installing league/flysystem-ziparchive (Allows you to use ZipArchive adapter)
  120. league/flysystem suggests installing spatie/flysystem-dropbox (Allows you to use Dropbox storage)
  121. league/flysystem suggests installing srmklive/flysystem-dropbox-v2 (Allows you to use Dropbox storage for PHP applications)
  122. laravel/framework suggests installing aws/aws-sdk-php (Required to use the SQS queue driver and SES mail driver (~3.0).)
  123. laravel/framework suggests installing doctrine/dbal (Required to rename columns and drop SQLite columns (~2.6).)
  124. laravel/framework suggests installing guzzlehttp/guzzle (Required to use the Mailgun and Mandrill mail drivers and the ping methods on schedules (~6.0).)
  125. laravel/framework suggests installing league/flysystem-aws-s3-v3 (Required to use the Flysystem S3 driver (~1.0).)
  126. laravel/framework suggests installing league/flysystem-cached-adapter (Required to use the Flysystem cache (~1.0).)
  127. laravel/framework suggests installing league/flysystem-rackspace (Required to use the Flysystem Rackspace driver (~1.0).)
  128. laravel/framework suggests installing league/flysystem-sftp (Required to use the Flysystem SFTP driver (~1.0).)
  129. laravel/framework suggests installing nexmo/client (Required to use the Nexmo transport (~1.0).)
  130. laravel/framework suggests installing pda/pheanstalk (Required to use the beanstalk queue driver (~3.0).)
  131. laravel/framework suggests installing predis/predis (Required to use the redis cache and queue drivers (~1.0).)
  132. laravel/framework suggests installing pusher/pusher-php-server (Required to use the Pusher broadcast driver (~3.0).)
  133. laravel/framework suggests installing symfony/dom-crawler (Required to use most of the crawler integration testing tools (~4.0).)
  134. laravel/framework suggests installing symfony/psr-http-message-bridge (Required to psr7 bridging features (~1.0).)
  135. psy/psysh suggests installing ext-pdo-sqlite (The doc command requires SQLite to work.)
  136. psy/psysh suggests installing hoa/console (A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit.)
  137. filp/whoops suggests installing whoops/soap (Formats errors as SOAP responses)
  138. sebastian/global-state suggests installing ext-uopz (*)
  139. phpunit/php-code-coverage suggests installing ext-xdebug (^2.6.)
  140. phpunit/phpunit suggests installing phpunit/php-invoker (^2.0)
  141. phpunit/phpunit suggests installing ext-soap (*)
  142. phpunit/phpunit suggests installing ext-xdebug (*)
  143. Writing lock file
  144. Generating optimized autoload files
  145. > Illuminate\Foundation\ComposerScripts::postAutoloadDump
  146. > @php artisan package:discover
  147. Discovered Package: fideloper/proxy
  148. Discovered Package: laravel/tinker
  149. Discovered Package: nunomaduro/collision
  150. Package manifest generated successfully.
  151. > @php artisan key:generate
  152. Application key [base64:qddbSfYhoK3ZKyRQSo4effaeR9ABBIwmA7GoyF3gQjg=] set successfully.

安装日志

Problem 1: requires ext-mbstring

  1. sudo apt-get install php7.-mbstring

Problem 2: requires ext-dom

  1. sudo apt-get install php7.-xml
  • 运行 Laravel 项目
  1. lolo@lolo-UX303UB$ ls
  2. app bootstrap composer.lock database phpunit.xml readme.md routes storage vendor
  3. artisan composer.json config package.json public resources server.php tests webpack.mix.js
  4.  
  5. lolo@lolo-UX303UB$ php artisan serve
  6. Laravel development server started: <http://127.0.0.1:8000>
  7. [Sun Jul :: ] 127.0.0.1: []: /favicon.ico

五、框架基本思路

框架执行过程,以及显示Hello world的过程。

  1. app -- Https 业务逻辑
  2.  
  3. -- Http/routes.php【返回 (1) view --> resources/views/welcome.blade.php
  4.  
  5. bootstrap -- 框架启动,自动加载
  6.  
  7. -- autoload.php【加载 (1) /../vendor/autoload.php
  8.  
  9. -- app.php【实例化 (2) app and then return $app
  10.  
  11. config -- 配置文件,such as cache.
  12.  
  13. database -- 数据库相关资源
  14.  
  15. public -- 静态资源, such as pic.
  16.  
  17. -- index.php【加载 (1) /../bootstrap/autoload.php then (2) app.php
  18.  
  19. resources -- 视图以及原始的资源文件,views就是mvc中的v
  20.  
  21. -- views/welcome.blade.php【显示的首页 (2) html内容】
  22.  
  23. storage -- 编译后的模板文件等。
  24.  
  25. tests -- 单元测试。
  26.  
  27. vendor -- 依赖模块

项目配置


一、常见包管理器

  1. Java: Maven
  2. NodeJS: NPM
  3. Objective-C: CocoaPods
  4. PHP: PEAR

However,

Composer 是依赖管理工具,不是包管理器。

Install,

Goto: [Laravel] 01 - Love beautiful code? We do too.

二、使用 composer

  • 创建composer.json

$ composer init

开始生成并配置:composer.json

  • 查看要安装的包

有么?$ composer search monolog

版本?$ composer show monolog/monolog

列出所有相关信息,包括版本:$ composer show -- all monolog/monolog

  • 包设置并安装

$ composer install

vendor 所有composer安装的目录,monolog就在里面。

  • 自动安装依赖

composer require:自动安装相关的依赖,如下所示。

三、使用 Laravel

  • 安装Laravel

因为laravel本质就是个“包”。

$ composer search laravel

  • 生成Laravel项目

有三种方式:

$ php composer.phar create-project --prefer-dist laravel/laravel laravel01

$ laravel new laravel02

$ laravel new test --dev

四、Artisan 控制台

  • 一个命令行工具

[1] 生成一个新项目

$ laravel new laravel53

localhost:8888/laravel53/public/

[2] 打开项目by PhpStorm

[3] 命令行进入项目主路径

[4] 查看有哪些命令:

$ php artisan

$ php artisan list

$ php artisan help migrate

  •  命令行的使用

例如:创建控制器的效果,生成了StduentController.php

[Laravel] 01 - Love beautiful code? We do too.的更多相关文章

  1. laravel.01.一些细节

    0:参考1,参考2,参考3,参考4,参考5 1.读取项目的配置文件内容,比如app.php下的name属性,用config('app.name','default-value'); 2.读取.ENV文 ...

  2. [Code::Blocks] Install wxWidgets & openCV

    The open source, cross platform, free C++ IDE. Code::Blocks is a free C++ IDE built to meet the most ...

  3. [Laravel] 14 - REST API: Laravel from scratch

    前言 一.基础 Ref: Build a REST API with Laravel API resources Goto: [Node.js] 08 - Web Server and REST AP ...

  4. 本人SW知识体系导航 - Programming menu

    将感悟心得记于此,重启程序员模式. js, py, c++, java, php 融汇之全栈系列 [Full-stack] 快速上手开发 - React [Full-stack] 状态管理技巧 - R ...

  5. 简简单单搞掂恼人的Laravel 5安装

    想折腾下Laravel 5了.Laravel是这世界上最好且没有之一的语言──PHP──的众多框架中的一个,是我比较感兴趣的PHP Web Framework. 但是安装Laravel可不是件容易的事 ...

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

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

  7. Laravel Cheat 表 http://cheats.jesse-obrien.ca/#

    Laravel Cheat Sheet Toggle Code Comments PDF Version Github Laravel 3 Docs Laravel 4 Docs Artisan ph ...

  8. 【搜索引擎Jediael开发4】V0.01完整代码

    截止目前,已完成如下功能: 1.指定某个地址,使用HttpClient下载该网页至本地文件 2.使用HtmlParser解释第1步下载的网页,抽取其中包含的链接信息 3.下载第2步的所有链接指向的网页 ...

  9. Learning from the CakePHP source code - Part I

    最近开始痛定思痛,研究cakephp的源码. 成长的路上从来没有捷径,没有小聪明. 只有傻傻的努力,你才能听到到成长的声音. 下面这篇文章虽然过时了,但是还是可以看到作者的精神,仿佛与作者隔着时空的交 ...

随机推荐

  1. 轻松学C#----第二篇笔记

    第二篇: 分析下第一篇的代码,见下图: 2.同其他语言一样,C#语言在编写时也遵守一定的语法规范. A.标识符(identify):指为方法.变量.其他任何用户自定义项指定的名称.标识符必须遵循一定的 ...

  2. CentOS下bond网卡聚合与网桥结合

    需求:服务器配置bond多网卡聚合,然后KVM需要使用到网桥,那么需要做到网桥绑定到bond网卡上. 实现核心: 1.bond配置参考:https://www.cnblogs.com/EasonJim ...

  3. DIY自己的AllocateHWnd函数

    Classes单元的AllocateHWnd函数是需要传入一个处理消息的类的方法的作为参数的,原型: function AllocateHWnd(Method: TWndMethod): HWND; ...

  4. Tomcat服务器配置https双向认证(使用keytool生成证书)

    一,HTTPS原理   1,HTTP.HTTPS.SSL.TLS介绍与相互关系 (1)HTTP:平时浏览网页时候使用的一种协议.HTTP协议传输的数据都是未加密的(明文),因此使用HTTP协议传输隐私 ...

  5. oracle获取今年在内的前几年、后几年

    前几年 select to_char(sysdate, 'yyyy') - level + 1 years from dual connect by level <= num num:即想获取几 ...

  6. Mac下安装Mysql以及修改Mysql密码

    1.安装Mysql 安装有2种办法,一种是下载mysql安装文件,慢慢安装,另一种就是下载xmpp,里面自带mysql,就像是安装普通的mac软件一样,安装完毕,就有了mysql了. 方法一,官网下载 ...

  7. SpringBoot集成Redis分布式锁以及Redis缓存

    https://blog.csdn.net/qq_26525215/article/details/79182687 集成Redis 首先在pom.xml中加入需要的redis依赖和缓存依赖 < ...

  8. KVM虚拟化管理 virt manager常用操作

    部分涉及到Linux.Nginx.tomcat.MySQL等的点滴操作记录,时间长了,就忘掉了,偶尔整理一下操作的history,就此简要备份一下: [原][BG]-一次虚拟化环境实践简要记录: ht ...

  9. Windows下libjpeg-trubo-1.5.3编译(VS2015)

    简述 https://libjpeg-turbo.org/的网站上是有已经编译好的版本下载的,但是VC下是使用的VC10.0编译的.虽然在VC14.0下也能用,但是我还是需要编译一个VC14.0版本的 ...

  10. http头文件User-Agent详解【转载】

    原文地址:http://blog.csdn.net/andybbc/article/details/50587359 http头文件User-Agent详解 什么是User-Agent User-Ag ...