初识magento框架代码结构

安装好magento之后,用IDE打开所在文件夹,会看到如下所在的代码结构:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/app –程序根目录
/app/etc –全局配置文件目录
/app/code –所有模块安装其模型和控制器的目录
/app/code/core –核心代码或经过认证得模块,如果要升级不要这里的代码
/app/code/community –社区版的模块目录
/app/code/local –定制代码目录
/app/code/core/Mage –magento默认命名空间
/app/code/core/Mage/{Module} –模块根目录
/app/code/core/Mage/{Module}/etc –模块的配置文件目录
/app/code/core/Mage/{Module}/controllers –模块的控制器
/app/code/core/Mage/{Module}/Block –显示块的逻辑类
/app/code/core/Mage/{Module}/Model –模块的对象模型
/app/code/core/Mage/{Module}/Model/Mysql4 –模块的资源模型
/app/code/core/Mage/{Module}/sql –模块各个版本的安装和升级用sql
/app/code/core/Mage/{Module}/sql/{resource}/ - 升级是需要的资源模型
/app/code/core/Mage/{Module}/sql/{resource}/{type}-{action}-{versions}.(sql|php) –资源升级文件例如: mysql4-upgrade-0.6.23-0.6.25.sql
/app/design –设计包目录(layouts, templates, translations)
/app/design/frontend –前端的设计
/app/design/adminhtml –后台管理设计
/app/design/{area}/{package}/{theme} –定制的主题
/app/design/{area}/{package}/{theme}/layout –定义显示块的 .xml 文件
/app/design/{area}/{package}/{theme}/template – .phtml (html with php tags)模版
/app/design/{area}/{package}/{theme}/locale –Zend_Translate 兼容的主题用的文字翻译
/app/locale –本地化文件
/app/locale/{locale (en_US)} –Zend_Translate 兼容的模块用的文字翻译
/skin/{area}/{package}/{theme}/- css和图像
/lib –公用库
/js – javascripts
/media –上传文件存放目录
/tests –测试目录
/var –临时文件目录

说明:

  1. app/code目录下分为三部分:corecommunitylocal

    • core里的是核心模块,修改了这部分的话magento就没法升级了
    • commutiy里的是社区模块,就是别人开发的,有免费的也有收费的
    • local里的是我们自己开发的模块,在新建模块之前先建立一个名字空间,一般是公司的名称,如tecent,然后就可以在app/code/local/tecent/目录下新建模块了,如何新建模块,参考
  2. mediavar文件需要有写入的权限,在安装magento的时候如果这两个文件权限不够的话会报错,需要chmod 777修改文件夹的权限

mac下php开发环境搭建:nginx+mysql+php+php-fpm

#关于集成环境

如果要使用apache服务器的话,可以考虑windows环境下可以安装集成环境,phpstudy、xampp
mac下也有集成环境:MAMP,基础功能不能切换php版本,高级功能收费

另外,mac自带了apache和php,如果对php版本要求不高,线上服务器使用的是apache的话,只需要启用并进行简单的配置,搭配上mysql数据库就拥有一套开发环境了

至于到底是安装集成环境还是逐项安装,我的建议是跟线上服务器保持一致:
线上使用nginx,那我们本地就使用nginx,不然远程服务器上的nginx日志都不知道在哪里
线上使用php5,我们也用php5,就不要图新鲜安装php7了(可以在虚拟机里单独搭建一套测试环境,那想装什么样的都ok)

一 准备工作

安装homebrew

二 安装配置mysql

  1. 在终端通过命令行安装

    1
    brew install mysql
  2. 设置mysql开机启动

    1
    2
    ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
  3. 通过安全方式设置mysql的密码
    输入以下命令后

    1
    /usr/local/opt/mysql/bin/mysql_secure_installation

根据提示输入密码,密码要记住,下面登录的时候要用

  1. 登录mysql数据库

    数据库登录

  2. 安装mysql客户端
    推荐使用Sequel
    安装方法:搜索下载安装文件或用命令行下载

    1
    brew cask install sequel-pro

效果图:
sequel界面

#三 安装配置php及php-fpm

系统自带的php版本不一定能满足我们的需要,一般我们会选择重新安装php,安装的版本应当与线上环境的php版本保持一致。这样就可以避免本地与线上php版本不一致产生的bug,比如老版本的一些方法在新版本中已经被淘汰了,而新版本增加了许多实用的功能老版本并不支持
举个小例子:
php5.4之后,可以用[]表示数组

1
2
3
4
$a = [
'a' => 1,
'b' => 2,
];
  1. 安装php(若要使用系统自带的php可跳过这一步),以php5.5为例

    1
    brew install php55 --with-fpm --with-gmp --with-imap --with-tidy --with-debug --with-mysql --with-libmysql
  2. 安装php扩展,也可以先不急,等后面要用到什么扩展的时候再安装也可以
    安装扩展的方法(以xdebug扩展为例):

    1
    brew install php55-xdebug --build-from-source;

最后的--build-from-source是一定要加上的,我看很多教程里都漏了这一句。加上这句可以保证安装的扩展与php版本保持一致

备注:要卸载通过homebrew安装的php扩展,参考这篇文章:mac环境下通过homebrew安装的php报错解决

  1. 配置环境变量,使我们安装的5.5版本的php覆盖系统自带的php
    1
    2
    3
    4
    5
    6
    7
    vim ~/.bash_profile
    ##在文件中写入下面的内容
    export PATH="$(brew --prefix php55)/bin:$PATH"
    export PATH="$(brew --prefix php55)/sbin:$PATH"
    export PATH="/usr/local/bin:/usr/local/sbin:$PATH"
    ##
    source ~/.bash_profile

觉得这样麻烦的,可以直接删除mac自带的老版本的php后再安装

  1. php-fpm配置
    打开你的php目录,一般在usr/local/etc/php/5.5,需要配置php-fpm.confphp.ini

  2. php-fpm开机启动

    1
    2
    ln -sfv /usr/local/opt/php55/*.plist ~/Library/LaunchAgents
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.php55.plist

四 安装配置nginx

  1. 安装nginx

    1
    brew install nginx --with-http_geoip_module
  2. 启动nginx

    1
    sudo nginx
  3. 重新加载配置|重启|停止|退出 nginx

    1
    nginx -s reload/reopen/stop/quit
  4. 设置nginx开机启动

    1
    2
    ln -sfv /usr/local/opt/nginx/*.plist ~/Library/LaunchAgents
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist

五 配置快捷键

mac环境sublime配置php编译环境

有时候在写php代码的时候,需要写一些短小的脚本测试,比如empty(),is_null()函数碰到nullfalse0等变量时的结果

这些脚本可能就两三句话,想要运行的话,比较麻烦,幸好sublime自带的编译环境也支持php,不过需要我们进行一些配置

先确认你的php已经加入了环境变量

如何清除magento缓存

手动删除

直接删除文件夹:项目根目录/var/cache(需要先暂停nginx服务)

终端删除缓存

在终端删除的命令行:

1
rm -rf 项目根目录/var/cache

可以建立别名,后面快捷删除

1
2
3
vim ~/.zshrc
alias cache.clear="rm -rf 项目根目录/var/cache"
source ~/.zshrc

注意:如果没有安装过oh my zsh,那么需要将上面命令中的.zshrc换成 .bash_profile
建立别名后,直接在终端输入

1
cache.clear

即可清缓存

后台删除缓存

进入后台,选择System > Cache Management

其中Configuration表示配置文件,如local.xmlconfig.xml的缓存

清除redis缓存

当magento接入redis之后,清除redis的缓存会清除magento的所有缓存,清除方法

1
2
redis-cli
FLUSHALL
>注:最好不要这样做,会清除产品、列表、fpc以及其它所有缓存

定位前台的template和block

背景: 关于template和block

Magento 的执行控制器不直接将数据传给试图,相反的视图将直接引用模型,从模型取数据。这样的设计就导致了视图被拆分成两 部 分,块(Block)和模板(Template)。块是 PHP 对象,而模板是原始 PHP 文件,混合了 XHTML 和 PHP 代码(也就是把 PHP 作为模板语言 来使用了)。每 一个块都和一个唯一的模板文件绑定。在模板文件 phtml 中,“$this”就是指 该模板文件对应的块对象。
-引用自《深入理解magento第三章》

方法一:直接在项目中搜索模板中的关键字

直接在代码库中搜索前台出现的关键字,如登陆页面的“用户名”、“密码”;首页的的“联系我们”之类的
缺点是可能会搜索到很多相关的文件,需要仔细的甄别

方法二: [推荐]修改后台配置,直接在前台看到模板的名称

打开后台你的magento网址/admin选择:
System - Configuration
再选择ADVANCED下的Developer,如图

先在左上角选择Default Store View,如图

再修改右边的Debug模块,如图
后台配置步骤
然后在前台就会显示对应的templateblock
效果图:

方法三:安装开发者插件(不可用)

注:从水水的博客看到的方法,见
http://blog.csdn.net/shuishui8310/article/details/5223383

安装要用的key: magento-community/HM_DeveloperToolbar

安装magento

准备工作

  1. 搭建开发环境:nginx(apache)+php+php-fpm+mysql
  2. 在mysql中新建magento要用的数据库

  3. 注册magento官网账号,并下载magento
    https://magento.com


选择社区版,在打开的页面点Download Now


选择带sample data的版本(即测试数据,不然安装好了啥都没有,要自己从头弄起,安装好了)

下载完成后解压到本地根目录,文件夹名称修改成你的项目名称,如’jimPractiseMagento’,即可以通过localhost访问到的目录

安装mageno

访问localhost/jimPractiseMagento会自动跳转到安装页面

第一步,【用户协议】,勾选agree,选择continue

第二步,【语言】, 选择continue

第三步,【检测问题】一般出问题的都在这一步

常见的错误有两种:

  1. 缺乏php扩展
  2. 文件路径不可写,如下图所示

缺乏php扩展的时候,根据提示安装对应的扩展即可

如果像图示一样提示:xxx/mediaxxx/var路径不可写的时候,执行下面的命令修改根目录的文件权限

1
chmod -R 777 文件根目录路径

注:修改权限以后,git可能会将改了权限的文件视为一种修改,并出现在sourceTree的未暂存文件中,这里就需要修改git的配置

1
2
cd 项目根目录
vim .git/config

将.git/config文件中的filemode = true改为filemode = false即可

解决页面提示的错误后刷新下页面,没有错误后点continue

第四步,【数据库】,填写数据库信息后,点continue,安装完成
(这里比较简单,故略去)

mac下快速输入长命令行的两种方法

本文介绍两种在mac下快捷输入长命令行的方法
以启动redis服务的命令/usr/local/bin/redis-server /etc/redis.conf为例

方法一: alias

1
2
3
4
5
6
cd ~ //进入用户目录
vim .zshrc //如果安装了zsh的话,打开这个配置,否则使用 vim .bash_profile
//编辑配置文件
alias redis.start="/usr/local/bin/redis-server /etc/redis.conf"//注意,等号左右不能有空格
//完成编辑
source .zshrc //保存配置,同理,未安装zsh的使用 source .bash_profile

这样,别名就设置好了
直接在终端使用redis.start就可以启动你的redis服务了
甚至,你还可以将多个alias结合起来使用(见文末)

方法二:atext

注:也可以使用其他类似的软件,如TextExpander

1.下载并安装atext

2.atext设置
先在偏好设置里设置触发片段的热键,如ctrl+\
然后打开atext,新建一个片段组New Group,并如下图所示设置组的属性
atext设置
这样设置之后,我们输入片段+热键就能触发命令,展开片段对应的内容

3.编辑常用命令
如图所示,在组下面新建常用的片段
atext使用示意图
4.使用
这时候,在终端输入设置好的片段名称,如redis.start,再按设置好的热键,如 ctrl+\ ,就会自动展开成/usr/local/bin/redis-server /etc/redis.conf
,按return即可使用该命令了

两种方法的比较

第一种alias的方法比较快捷,不用再输入热键,可以可以将多个alias组合起来使用,如:

1
2
3
alias fpm.start="sudo php55-fpm start"
alias fpm.stop="sudo php55-fpm stop"
alias fpm.restart='fpm.stop && fpm.start'

局限性:只能在自己的终端上使用,不能在别的地方用,只能给命令行设置别名

第二种atext的使用范围很广,不但可以在自己的终端上使用,还可以在远程服务的终端上使用,还可以记录常用的代码片段,在coding的时候使用(话说最后才是atext最常用的功能吧:)- 来自本人的吐槽

在oh my zsh的基础上添加终端的欢迎界面

先上效果图,就是这只萌萌哒的小牛以及牛说的每日格言啦,怎么做出这种效果呢,往下看。

准备工作

假设你已经完成了下面的准备工作

*安装了items2+zsh+oh my zsh(安装过程在这里不赘述了,网上一堆教程,推荐迟建强老师的教程:终极 Shell)

*安装了homebrew

开始安装zsh的欢迎界面

第一步,先用homebrew安装两个依赖的包

1
2
brew install fortune
brew install cowsay

第二步,安装oh my zshchucknorris插件
打开终端配置文件

vim ~/.zshrc

修改plugins = ( )这一行
括号里表示你安装过的插件,以空格区分,只要加上chucknorris就可以了,下面是我安装的所有的oh my zsh的插件,以供参考

1
plugins=(brew git z extract history catimg wd last-working-dir chucknorris )

再在.zshrc文件的最后一行添一句命令:

chuck_cow
即可

保存并退出,重新加载配置文件

source ~/.zshrc

重启终端,牛牛就出来啦,enjoy it!

mac环境下通过homebrew安装的php报错解决:PHP Startup: Unable to load dynamic library

背景

注:可以直接查看最下面的解决方案

事情的起因是这样的:
通过下面的命令安装imagic扩展(不要问我为什么装这玩意儿,抽风了可能)

brew install php55-imagick

运行 php --version发现报错信息
安装imagick报错

注:此处解决方案参考了这里
https://github.com/Homebrew/homebrew-php/issues/1556

报错原因是因为安装的imagick扩展与php版本不匹配,通过下面的命令重新安装

1
brew reinstall php55-imagick --build-from-source

运行 php --version发现新的报错信息
imagick报错信息

这个原因一直没找到

然后我一想:我管它什么原因,这玩意儿我压根就不需要吧,卸载了就是了
执行

1
brew uninstall php55-imagick

果然,又报错了:

stackoverflow上搜索了半天,几乎所有提供的解决方案都是重装imagick
but,前面装过了还是会报错啊

先是在php.ini文件中看看在哪里启用了imagick这个扩展,并没有发现

附:php.ini的路径是:
/usr/local/etc/php/5.5(如果你跟我一样是通过homebrew安装的php的话)

最终解决方案

注:最后的解决方法参考这里
http://stackoverflow.com/questions/5282264/php-warning-php-startup-unable-to-load-dynamic-library

先执行下面的命令,获取所有跟php配置相关的文件的路径,终于找到了通过homebrew安装的扩展的位置

1
php -i | grep ini

接下来就简单了,打开ext-imagick.ini文件

1
2
cd /usr/local/etc/php/5.5/conf.d/
vim ext-imagick.ini

注销掉extentions=""这行就可以了

这下,世界终于安静了,每次启动php的时候静悄悄的,再也没有烦人的warning提示了

在php中使用json

关于json

  1. 为什么要使用json
    json字符串容易存储,尤其是要将一个数组存入数据库或缓存或记录日志的时候

  2. json_encode

1
$str = json_encode($arr);
  1. json_decode
    Dash中的函数格式如下
1
mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )

注意第二个参数,当json_decode()的第二个参数不填的时候,json解析的到的结果是个object对象,只有当第二个参数是true的时候,json解析的结果才是list数组

1
2
$object = json_decode($str);
$array = json_decode($str,true);

如果是做API接口开发,经常和客户端联调的筒子们肯定就知道,object类型和list类型对于安卓来说相差甚远,直接关系到接口是否能够解析

关于json工具

  1. 在线json解析
    (1)Json Parser Online:http://json.parser.online.fr/
    优势:界面简洁美观,json解析框够大,适用于解析很长的json字符串

    (2) Be Json


    优势:json解析出错时会给出错误提示

  2. Chrome的json解析扩展 - JSONVIEW
    安装完成后调用接口直接在页面上显示json解析后的内容

下载链接:
https://chrome.google.com/webstore/detail/jsonview/chklaanhfefbnpoihckbnefhakgolnmc

效果图:

magento日志

一 关于错误日志

使用magento的过程中经常出现图示的错误页面
magento错误页面
红框中的部分是错误日志的编号,以下是查看对应的错误日志的方法:

  1. 项目根目录/var/report/错误日志编号文件中即可查看对应的错误信息
  2. 在页面上直接显示错误信息的方法:将项目根目录/errors/local.xml.sample修改为local.xml即可(最好保留原文件)
    附:通过终端命令行复制文件
    1
    2
    cd 你的项目根目录路径/errors
    cp local.xml.sample local.xml

在magento中配置使用redis缓存

php常用的缓存工具:memcached和redis,本文讲的是在magento框架中借助magento的模块来使用redis

准备工作

确保你的电脑安装并启动了redis服务、配置了php的redis扩展

magento配置reids

  1. 确保magento框架中安装并启用了Cm_Cache_Backend_Redis模块

  2. 修改以下路径中的local配置文件
    项目根目录/app/etc/local.xml
    config/global下添加子节点cache如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<cache>
<backend>Cm_Cache_Backend_Redis</backend>
<backend_options>
<server>127.0.0.1</server> <!-- or absolute path to unix socket -->
<port>6379</port>
<persistent></persistent> <!-- Specify unique string to enable persistent connections. E.g.: sess-db0; bugs with phpredis and php-fpm are known: https://github.com/nicolasff/phpredis/issues/70 -->
<database>0</database> <!-- Redis database number; protection against accidental data loss is improved by not sharing databases -->
<password></password> <!-- Specify if your Redis server requires authentication -->
<force_standalone>0</force_standalone> <!-- 0 for phpredis, 1 for standalone PHP -->
<connect_retries>1</connect_retries> <!-- Reduces errors due to random connection failures; a value of 1 will not retry after the first failure -->
<read_timeout>10</read_timeout> <!-- Set read timeout duration; phpredis does not currently support setting read timeouts -->
<automatic_cleaning_factor>0</automatic_cleaning_factor> <!-- Disabled by default -->
<compress_data>1</compress_data> <!-- 0-9 for compression level, recommended: 0 or 1 -->
<compress_tags>1</compress_tags> <!-- 0-9 for compression level, recommended: 0 or 1 -->
<compress_threshold>20480</compress_threshold> <!-- Strings below this size will not be compressed -->
<compression_lib>gzip</compression_lib> <!-- Supports gzip, lzf, lz4 (as l4z) and snappy -->
<use_lua>0</use_lua> <!-- Set to 1 if Lua scripts should be used for some operations -->
</backend_options>
</cache>
  1. 清空magento缓存使得配置文件生效,关于如何清空magento缓存,参考《magento二次开发 - 如何清除magento缓存》

可能遇到的问题

  • 6-22:今天上午打开本地网站时报如下错误connection to Redis failed

错误页面

发现是因为redis服务没有开启导致的,开启redis即可

说明magento在配置了redis之后那么要保持reids服务一直处于开启状态

参考:
[1]在magento中配置redis文档:

http://devdocs.magento.com/guides/m1x/ce18-ee113/using_redis.html

[2]Cm_Cache_Backend_Redis配置

https://github.com/colinmollenhour/Cm_Cache_Backend_Redis/blob/master/README.md

  • 7-26:在redis-cli中执行keys *命令没有看到任何缓存信息

查看local.xml的配置:

1
<session_save>db</session_save>

session存储的方式设置为db而不是file的时候,需要指定数据库的编号0-15,默认的数据库是1

可以用如下的命令打开redis客户端

1
redis-cli -n 1

也可以在客户端中选择数据库

1
2
redis-cli
select 1

mac下安装redis

一 准备工作

安装了homebrew
安装了php、nginx(或apache)或集成环境

二 安装redis服务器

  1. 通过homebrew安装

    1
    brew install redis
  2. 直接下载安装
    本人是用这种方法安装的,安装完后才发现可以用homebrew安装

1
2
3
4
5
6
7
8
curl -O http://redis.googlecode.com/files/redis-2.8.7.tar.gz
sudo tar -zxf redis-2.8.7.tar.gz
mv redis-2.8.7 /usr/local/redis
cd redis
sudo make
sudo make test
sudo make install
mv redis.conf /etc/reds.conf

安装成功

三 redis服务器的启动、使用和退出

1 启动redis服务
执行以下命令

1
/usr/local/bin/redis-server /etc/redis.conf

出现下面的界面说明redis服务器安装成功

进入/usr/local/bin目录可以看到以下文件

dump.rdb 用于将缓存以文件的形式存储在硬盘中,需要设置权限,见文末
redis-cli 用于启动redis客户端

2 查看redis服务是否启动

1
ps aux | grep redis

3 使用redis服务

注:启动redis服务器后终端所在的窗口就不能输入别的命令了(如下图所示),需要在终端打开新的窗口才能使用客户端功能

通过redis-cli命令可以启动redis客户端

1
redis-cli

常用命令

keys * 查看所有键值
set (key) (value) 设置键key的值为value
append (key) (value2) 在键key的值后面加上value2
get (key) 查看键key的值

redis客户端使用举例:

6.23补充:如何设置和查看缓存时间

set a 123;//设置缓存:a=>123
EXPIRE a 3600;//设置缓存时间(秒)
TTL a;//查看缓存剩余时间

6.24补充:如何清空所有缓存

flushall //执行该命令后会清空redis服务器的所有缓存,一般用于应急处理,不应该作为常用命令

4 退出redis服务
(1)客户端退出
执行

1
redis-cli shutdown

(2)关闭pid
先运行

1
ps -u jim(替换成你的用户名) -o pid,rss,command | grep redis-server

查看所有redis服务的pid号

16.6.24日补充:还可以通过mac自带的活动监视器查看pid
如下图所示
通过Spotlight或alfred搜索activity monitor打开活动监视器
在活动监视器中搜索redis-server,即可得到pid号

补充:如果你的电脑安装了oh my zsh
那么只需要在终端输入

1
kill redis

按tab,会自动替换成对应的pid(喜大普奔啊,各位)

再运行

1
kill -9 27355

关闭redis服务对应的pid号,即可关闭redis服务

四 配置php使用redis服务

  1. 安装php的redis扩展
    1
    brew install php55-redis --build-from-source

php55是本机安装的php的版本(5.5),--build-from-source是让安装的扩展与php的版本保持一致

查看phpinfo(),出现redis选项说明redis配置成功

  1. 在php代码中使用redis服务
1
2
3
4
5
6
$redis = new Redis();
$redis->connect('127.0.0.1','host');//redis服务器ip及端口号
$redis->set($key,$value,$timeout);//设置缓存:键-值-缓存时间
$redis->get($key);//查找缓存
$redis->del($key);//删除缓存
$redis->delete($key);//删除缓存

##五 常见问题
(1)Redis: Failed opening .rdb for saving: Permission denied
redis服务器会生成dump.rdb文件存储缓存,如果文件权限不够则无法读写该文件

1
cd /usr/loal/bin

/usr/local/bin/(默认文件目录)下执行命令

1
chmod 777 dump.rdb

homebrew、homebrew-cask及cakebrew

一 用homebrew安装常用包

1
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

在终端运行brew命令可得到常用命令

Example usage:
查询包是否存在:brew search [TEXT|/REGEX/]
查询包信息及可用安装命令:brew (info|home|options) [FORMULA…]
安装包:brew install FORMULA…
更新homebrew:brew update
更新包:brew upgrade [FORMULA…]
卸载包:brew uninstall FORMULA…
查看已安装包:brew list [FORMULA…]

Troubleshooting:
brew config
检查homebrew状况:brew doctor
brew install -vd FORMULA

Brewing:
brew create [URL [–no-fetch]]
brew edit [FORMULA…]
https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/Formula-Cookbook.md

Further help:
man brew
brew help [COMMAND]
brew home

如:

brew search brew-cask
brew install nginx
brew search php
brew uninstall mysql

二 用homebrew-cask安装常用软件

比在网上下载安装文件安装的优势在于:
(1)节省下载安装包的过程,一行命令即可安装
(2)一些在网上搜不到安装文件的软件也可以通过这种方法安装

1
2
brew tap phinze/homebrew-cask
brew install brew-cask

使用方法:将上面的brew换成brew-cask即可,如

brew-cask install qq

三 用cakebrew可视化你的homebrew

如果你不熟悉终端命令,可以下载cakebrew,它是homebrew的客户端,可以实现常用的搜索、安装、卸载操作
官网下载安装

https://www.cakebrew.com

或执行以下命令

1
brew cask install cakebrew

效果图: