Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Command Line PHP Basics
Search
Jason Lotito
January 21, 2013
Technology
69
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Command Line PHP Basics
Jason Lotito
January 21, 2013
More Decks by Jason Lotito
See All by Jason Lotito
tmux
jasonlotito
1
52
Getting Things Done from Someone with OCD & ADHD
jasonlotito
0
100
How We Killed Our Process, Technology Stack, and Assumptions — and Survived
jasonlotito
0
64
Twitter Bootstrap, or why being a PHP Developer is a bad idea.
jasonlotito
2
580
require.js
jasonlotito
3
100
tmux
jasonlotito
0
150
Other Decks in Technology
See All in Technology
ミイダス株式会社 テックチームのご紹介 / MIIDAS Tech Team
miidas
0
160
検証フェーズはAIの回答を判断するための学習機会
toru_kubota
2
500
使いこなすために知っておきたい Azure SRE Agent アンチパターン
torumakabe
2
390
2026-10-01_MagicPod_QAハーネスエンジニアリングとQA組織の未来像
ynisqa1988
1
540
いちAWSエンジニアのAI活用を振り返る #devio2026 / devio osaka 2026 kawahara
masahirokawahara
2
390
【データ横丁主催】AI Agentがコンテキストを使って仕事をした後、何が残るのか― 組織の経験を次の判断に引き継ぐ「Agent Memory」
shisyu_gaku
2
330
[2026 Oracle Technical Deep Dive] エンタープライズAIエージェントを支えるOCIソリューション。ラインナップと特徴を理解しよう! (2026年9月17日開催)
oracle4engineer
PRO
0
550
Claude起点の仕様駆動開発
tanakaseiya
0
390
おそらく日本で唯一のDevRelインターン生として
husengs7
0
170
AI 時代の Azure エンジニアリング ~ 私たちは何を磨き、何を任せるのか ~
chack411
1
500
IoTデバイスを繋げるプロトコルMatterをAndroidで使用する方法
harutiro
0
120
AIは爆速なのに、私が詰まっていた話 ― 音声入力と鳴くマスコットでボトルネックを削る
yama3133
0
520
Featured
See All Featured
Done Done
chrislema
187
17k
Heart Work Chapter 1 - Part 1
lfama
PRO
10
36k
WCS-LA-2024
lcolladotor
0
850
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
320
The SEO Collaboration Effect
kristinabergwall1
1
590
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Fireside Chat
paigeccino
43
4.1k
Scaling GitHub
holman
464
140k
Music & Morning Musume
bryan
48
7.4k
How to Talk to Developers About Accessibility
jct
2
560
Claude Code のすすめ
schroneko
67
230k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Transcript
#!/usr/bin/php PHP on the command line Tuesday, February 19, 13
./phpcl --overview • Basic PHP Commands • PHP Scripts •
Arguments • Real World Example Tuesday, February 19, 13
Practical PHP On the command line Tuesday, February 19, 13
php -v → php -v PHP 5.3.15 with Suhosin-Patch (cli)
(built: Aug 24 2012 17:45:44) Copyright (c) 1997-2012 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies Tuesday, February 19, 13
php --ini → php --ini Configuration File (php.ini) Path: /etc
Loaded Configuration File: /private/etc/php.ini Scan for additional .ini files in: (none) Additional .ini files parsed: (none) Tuesday, February 19, 13
php lint Tuesday, February 19, 13
php -l → php -l stdin.php No syntax errors detected
in stdin.php Tuesday, February 19, 13
php -l → php -l stdin.php PHP Parse error: parse
error in stdin.php on line 5 Errors parsing stdin.php Tuesday, February 19, 13
php -l • Automate during rollup, commits • Prevent silly
mistakes, because, let’s face it, you aren’t doing TDD • Sometimes tools might modify output, even accidentally • Ensures code can run on the version of PHP installed Tuesday, February 19, 13
php -a PHP’s interactive shell Not quite a REPL, doesn’t
really matter (Read-Evaluate-Print Loop) Tuesday, February 19, 13
php -a → php -a Interactive shell php > $a
= range(1,3); php > var_dump($a); array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) } Tuesday, February 19, 13
php -a php > class Foo { public $bar =
'baz'; } php > $foo = new Foo(); php > echo $foo->bar; baz Tuesday, February 19, 13
php -a php > function p($v){ php { echo md5('this_is_really_secure_right?'.$v);
php { } php > p(134); bb33942de0b7f8f7fda76ef41ee55654 php > p('happy'); fbc327fa6e16a971130d72bd72e7e55f Tuesday, February 19, 13
php -a php > var_dump(array()===array()); bool(true) php > var_dump( ((array)
new stdClass()) === array() ); bool(true) php > class Foo{function __toString(){return '';}} php > $foo = new Foo(); php > var_dump( ((string) $foo) === '' ); bool(true) Tuesday, February 19, 13
php -a • Great for resolving quick question • Winning
arguments • Temporary scripts, functions Tuesday, February 19, 13
php -a • Has autocomplete php > new PDO PDO
pdo_drivers PDOException PDORow PDOStatement Tuesday, February 19, 13
PHP Scripts Tuesday, February 19, 13
Running Scripts • Command Line • $ php ./script.php •
Bash Bang • #!/usr/bin/php Tuesday, February 19, 13
Command Line • Useful for executing code that might also
run from a web server • Doesn’t assume existing installation directory Tuesday, February 19, 13
Bash Bang • $ ./script.php • $ ./script • $
script • #!/usr/bin/env php > #!/usr/bin/php Tuesday, February 19, 13
getopt <?php $options = getopt("f:hp:"); var_dump($options); → php ./getopt.php -f
hello -p asdf -h array(3) { ["f"]=> string(5) "hello" ["p"]=> string(4) "asdf" ["h"]=> bool(false) } Tuesday, February 19, 13
getopt • f: - Required value • v:: - Optional
value • a - No value • $opts = getopt(‘f:v::a’); Tuesday, February 19, 13
getopt • getopt( $shortOptions, $longOptions ) Tuesday, February 19, 13
getopt long options • $longOptions = array( • ‘required:’, •
‘optional::’, • ‘option’ • ); • $ script --required 123 --optional=”value is here” --option Tuesday, February 19, 13
getopt • $opts = getopt(‘v’,array(‘verbose’)); • $ script -v •
$ script --verbose Tuesday, February 19, 13
getopt • php.net/getopt • > 5.3 Works on windows, plus
support for ::, =, and longopts • < 5.3 misses those critical features Tuesday, February 19, 13
time to see code Tuesday, February 19, 13