首页
登录 | 注册

Laravel 学习之准备篇

前言:大二(2016)的时候就接触了PHP,语法学到一定程度之后开始学习框架,在网上比较一番之后决定先学习 ThinkPHP ,因为据说对新手友好。但是一直知道 Laravel 是 PHP 众多框架中最火热的一款,之前有看视频学习,但视频一上来就给我整一堆不知道具体有什么用的新概念脑子都是懵的,遂从入门到放弃。现在开始下定决心正式学习,并记录笔记和同为 Laravel 新手的朋友分享学习经历,也以防日后遗忘便于回顾,笔记内容包括但不限于Laravel学习。

学习资源主要为这本书 《Laravel 入门教程》 ,这篇文章为这本书的免费部分内容概括,你将了解到

  1. 中文排版规范
  2. Laravel 开发环境搭建
  3. 运行第一个应用 Hello World
  4. Composer 基础知识
  5. Vim 编辑器的基本使用
  6. Git 与 GitHub 的基本使用

(ps:找到适合自己的学习资源很重要,网上各种教学视频网站的免费教学视频知识零散,且不一定适合新手)

这篇文章 ,主要内容有:

  1. 中英文之间需增加空格:在 LeanCloud 上,数据存储是围绕 AVObject 进行的。
  2. 中文与数字之间需增加空格:今天出去买菜花了 5000 元。
  3. 数字与单位之间需增加空格:我家的光纤入屋宽频有 10 Gbps,SSD 一共有 20 TB。
  4. 全形标点与其它字符之间不加空格:刚刚买了一部 iPhone,好开心!
  5. 不重复使用标点符号:德国队竟然战胜了巴西队!
  6. 标点使用全形中文标点:嗨!你知道嘛?今天前台的小妹跟我说「喵」了哎!
  7. 数字使用半形字符:這件蛋糕只卖 1000 元。
  8. 遇到完整的英文整句,特殊名词,其内容使用半形标点:贾伯斯那句话是怎么说的?「Stay hungry, stay foolish.」
  9. 专有名词使用正确的大小写:我们的客戶有 GitHub、Foursquare、Microsoft Corporation、Google、Facebook。
  10. 不要使用不地道的缩写:我們需要一位熟悉 JavaScript、HTML5,至少理解一种框架(如 Backbone.js、AngularJS、React 等)的前端开发者。

开发环境的搭建 - Windows ,了解并学会使用如下工具:

  1. VirtualBox: Oracle 公司的开源虚拟机软件,支持大部分流行的系统,如:Mac, Windows, Linux 等。
  2. Vagrant:用来管理虚拟机的工具,支持当前主流的虚拟机系统如 VirtualBox、VMware、AWS 等。通过编写一个 Vagrantfile 文件来控制虚拟机的启动、虚拟机网络环境的配置、虚拟机与主机间的文件共享,以及启动后自动执行一些配置脚本
  3. Homestead:Homestead 利用 Vagrantfile 提供的便利,定制了一整套的可配置、可移植和复用的 Laravel 开发环境。Homestead 虚拟机里面包含了 Nginx Web 服务器、PHP 7、MySQL、Postgres、Redis、Memcached、Node,以及所有你在使用 Laravel 开发时需要用到的各种软件。

这里可能有朋友对这三个工具之间的关系迷迷糊糊的,在此写下我的个人见解:VirtualBox 是一款虚拟机软件,可以用它建立多个虚拟机,相当于有多个虚拟PC;Vagrant 是用来管理虚拟机的工具,我们可以用它在命令行对某个虚拟机进行各种操作,如创建、启动、登录、退出等;Homestead 是一个集成的 PHP 开发环境,包含了 Laravel 开发时需要用到的各种软件,可把它看成一个盒子,可以用 Vagrant 以这个盒子为模板创建一个虚拟机,日后可以以该虚拟机为开发环境。(个人理解,如有误敬请指正)

开发环境的搭建 - Windows
Homestead.yamf 配置文件分为以下几个部分:

  1. 虚拟机设置
    Homestead 支持我们对虚拟机的 IP,内存,CPU,虚拟机的默认提供者进行配置。这里我们基本不需要做任何配置,因此可以跳过。
  2. SSH 秘钥登录配置
  3. 共享文件夹配置
    通过 folders 来指明本机要映射到 Homestead 虚拟机上的文件夹。
  4. 站点配置
    站点配置允许你在主机里,通过域名来访问虚拟机里的 Laravel 应用。
  5. 数据库配置
    为 Homestead 指定数据库名称
  6. 自定义变量.

readme.md 项目介绍说明文件 resources 应用资源 resources/js 未编译的 JavaScript 代码 resources/sass 未编译的 SASS 代码 (将会编译为 CSS ) resources/views 视图文件 routes/api.php 用于定义 API 类型的路由 routes/channels.php 事件转播注册信息 routes/console.php 用于定义 Artisan 命令 routes/web.php 用于定义 Web 类型的路由(重点,大部分情况下本书会用到) server.php 使用 PHP 内置服务器时的 URL 重写 storage 编译后的视图、基于会话、文件缓存和其它框架生成的文件 storage/app 目录可用于存储应用程序使用的任何文件 storage/framework 目录被用于保存框架生成的文件及缓存 storage/logs 应用程序的日志文件 tests 应用测试相关文件 vendor Composer 依赖模块 webpack.mix.js Laravel 的前端工作流配置文件 yarn.lock Yarn 依赖版本锁定文件 .gitignore 被 Git 所忽略的文件 .env 环境变量配置文件
  1. Laravel 在项目创建时会自动为我们生成一个 welcome.blade.php 文件,这个文件将被用于渲染 Laravel 的默认视图。现在,让我们打开该文件,找到相应位置,将 Laravel 修改为 Hello, World!,重新打开 homestead.test,会发现页面已被修改。

Composer 入门教程
php代码规范PSR简介
Framework Interoperability Group(框架可互用性小组),简称 FIG,FIG 提出了 PSR-0 到 PSR-4 五套 PHP 非官方规范:

  1. PSR-0 (Autoloading Standard) 自动加载标准
  2. PSR-1 (Basic Coding Standard) 基础编码标准
  3. PSR-2 (Coding Style Guide) 编码风格向导
  4. PSR-3 (Logger Interface) 日志接口
  5. PSR-4 (Improved Autoloading) 自动加载优化标准

composer.json 文件中,require 键对应的是应用在 Laravel 所有环境上的扩展包,require-dev 键对应的是应用在 Laravel 开发环境上的扩展包。
在添加扩展包到 composer.json 时,需要为扩展包指定版本号才能进行安装,有以下这三种方式来为扩展包来指定版本范围。
版本范围

  • "php": "^7.1.3":表示安装版本号大于或等于 7.1.3 版本的 PHP。
  • “laravel/framework”: “5.7.*”:表示安装在 5.7.0 以上,5.8.0 以下的最新 Laravel 框架
  • “faker”:"~1.4" :表示安装版本号大于等于 1.4 但小于 2.0 的 faker

常用操作

  1. 安装项目依赖
    根据 composer.json 文件,在composer.json文件所在目录命令行下执行命令composer installphp composer.phar install,会产生如下文件Laravel 学习之准备篇

    其中,vendor文件夹存放了项目的依赖库,composer 把安装时确切的版本号列表写入composer.lock文件用来锁定composer
    当项目根目录下已经生成composer.lock文件时,当执行命令composer intsallcomposer只会下载composer.lock文件指定的版本,忽略 composer.json 文件中的定义
  2. 更新依赖库
    package.json进行了修改需要更新依赖库和更新锁文件,可以执行以下命令:
    php composer.phar updatecomposer update

简明 Vim 练级攻略,文章写得很好,指出使用 Vim 的各个使用等级,从低到高慢慢升级的感觉很棒。
四个等级:存活、感觉良好、觉得更好更强更快、使用 Vim 的超能力
等级一:存活
能在vim幸存下来只需要以下的5个命令,你就可以编辑文本了

  • i → Insert 模式,按 `Esc 回到 Normal 模式.
  • x → 删当前光标所在的一个字符。
  • :wq → 存盘 + 退出 (:w 存盘, :q 退出)
  • dd → 删除当前行,并把删除的行存到剪贴板里,相当于剪切
  • p → 粘贴剪贴板里的内容

扩展:
h j k l :强例推荐使用其移动光标,当然你也可以使用光标键 (←↓↑→).
:help <command> :显示相关命令的帮助。

解释一下何为 Normal 模式:在一般的编辑器下,当你需要 copy 一段文字的时候,你需要使用 Ctrl 键,比如:Ctrl-C。也就是说,Ctrl键就好像功能键一样,当你按下了功能键Ctrl后,C 就不在是 C了,而且就是一个命令或是一个快键键了,在 Vim 的 Normal 模式下,所有的键都是功能键。
等级二:感觉良好
上面的那些命令只能让你存活下来,现在是时候学习一些更多的命令了。
tips:所有的命令都需要在Normal模式下使用,如果你不知道现在在什么样的模式,你就狂按几次 Esc 键

  1. 各种插入模式
    a → 在光标后插入
    o → 在当前行后插入一个新行
    O → 在当前行前插入一个新行
    cw → 替换从光标所在位置后到一个单词结尾的字符
  2. 简单的移动光标
    0 → 数字零,到行头
    ^ → 到本行第一个不是blank字符的位置(所谓blank字符就是空格,tab,换行,回车等)
    $ → 到本行行尾
    g_ → 到本行最后一个不是blank字符的位置。
    /pattern → 搜索 pattern 的字符串(陈皓注:如果搜索出多个匹配,可按n键到下一个)
  3. 复制/粘贴,注:p/P都可以,p是表示在当前位置之后,P表示在当前位置之前
    P → 粘贴
    yy → 拷贝当前行当行于 ddP
  4. Undo/Redo
    u → undo
    <C-r> → redo
  5. 打开/保存/退出/改变文件(Buffer)
    :e <path/to/file> → 打开一个文件
    :w → 存盘
    :saveas <path/to/file> → 另存为 <path/to/file>
    :x, ZZ 或 :wq → 保存并退出 (:x 表示仅在需要时保存,ZZ不需要输入冒号并回车)
    :q! → 退出不保存 :qa! 强行退出所有的正在编辑的文件,就算别的文件有更改。
    :bn 和 :bp → 你可以同时打开很多文件,使用这两个命令来切换下一个或上一个文件。(注:可使用:n到下一个文件)

花点时间熟悉一下上面的命令,一旦你掌握他们了,你就几乎可以干其它编辑器都能干的事了。但是到现在为止,你还是觉得使用 Vim 还是有点笨拙,不过没关系,你可以进阶到第三级了。
等级三:觉得更好更强更快
等级四:使用 Vim 的超能力
等级三,四你们自个儿去看我参考的那篇文章,我现在才等级二,后面的先略过

Git 与 GitHub,在此概括下这篇文章的重要内容,如需Git 官方学习文档的朋友请 点击此处

SSH Key的生成和使用)将公钥 id_rsa.pub 文件里的内容复制粘贴到个人 GitHub账号的 SSH 令牌管理页面,如下图Laravel 学习之准备篇

2.提交代码到 GitHub
在配置完 GitHub 账号之后,我们便可以开始在上面存放项目代码了。首先 新建一个 GitHub 仓库,取名为 hello_laravel,填上 Description 项目描述,Initialize this repository with a README 这一项无需勾选,因为 Laravel 已默认帮我们创建好了 readme.md 文件。
Laravel 学习之准备篇

创建完成之后,使用以下命令将代码上传到 GitHub 上(将 your_username 替换为你自己的 GitHub 用户名):
$ cd ~/Code/Laravel
$ git remote add origin git@github.com:your_username/hello_laravel.git
$ git push -u origin master
至此,项目已成功托管到 GitHub 上。
后面我们如果对本地代码进行了改动,只需运行这 3 条命令即可将代码推送到安全可靠的 GitHub 上:
1、保存到暂存区:
$ git add -A
2、输入描述信息并提交到本地的 Git:
$ git commit -m "Say something"
3、将代码推送到 GitHub:
$ git push

Laravel 学习之准备篇



2020 jeepxie.net webmaster#jeepxie.net
10 q. 0.008 s.
京ICP备10005923号