Vagrant上でXdebug使いたくてPeclコマンドでインストールしたけどうまくいかなかった話
どうもババールです。
僕は、vagrantとvirtualboxにてcentosを立ち上げていつもプログラミングに勤しんでるわけですが、そろそろデバッグ機能をatomにつけたいと思いまして、Xdebugをインストールしようかと考えました。
厳密に言うと、atomのプラグインであるPHP-debugにXdebugを紐付けることでデバッグを可能にしようというものです。
簡単にいくと思いきや、これが一週間悩みつづけることになるとは・・・・・
まずXdebugをターミナル上でインストールしようかと思い調べたところ、PearとdevelopmentToolをインストールしないといけないみたい・・・
ふむふむ・・・
ターミナルにて
$ yum -y install php-pear
$ yum -y install php-devel
でインストール・・・・・
あれ、develはもう入れてるみたい・・・いつ入れたんだろ・・・。
さてこれにてPeclコマンドが使えるようになったため、
$ pecl install xdebug
にてXdebugをインストール!!!!
が、しかし・・・
ターミナル上には、
Warning: Invalid argument supplied for foreach() in Command.php on line 259
Warning: Invalid argument supplied for foreach() in /usr/share/pear/PEAR/Command.php on line 259
Warning・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・
XML Extension not found
という無数のわけのわからない羅列が。
たくさんたくさんババールはググりました。
しかし、同じような現象にあってる人がなかなか見つからず・・・・・。
やっと質問板にて同じような人が(Peclコマンドじゃないみたいだったけどね)いました。
もちろん外国人のため英語での質問→回答
なんとか訳し、原因は、peclのモジュールにあるとのこと・・・・・
なるほど・・・・・わからん。
モジュールに詳しい私の知り合いに聞いた所、
vi `which pecl`
でpeclコマンドの内容を確認してみたら?と返ってきたので、
いざ確認したところ、
exec $PHP -C -n -q $INCARG -d date.timezone=UTC -d output_buffering=1 -d variables_order=EGPCS -d safe_mode=0 -d register_argc_argv="On" $INCDIR/peclcmd.php "$@"
と表示され、これの何がおかしいかというとphp.iniに書かれている記述を無視してphpを実行するためにコンパイルの時点でxmlモジュールを読み込む設定にしていないとxmlを読み込まず、エラーとなってしまうことがあるとのこと
ここの -n 部分を消してあげたら問題解決なのだと・・・
全然納得できなかったですが、おかげでPeclコマンド使うことができました。
ほんとこれに一週間悩みました。
同じような人見つからないのも不思議
それではババールでした。
お名前.COMでドメイン買ったけどいいことあまりない
どうもババールです。
僕のブログのドメインはお名前.COMでの購入なのですが、ここ一ヶ月であまりいい思いしてないんですよね・・・・・(こんなものなのかとも思いますが)
というのも、ドメイン購入時にメールアドレスを登録するのですが、そのアドレスに対して情報メール送ってもいいですか的な選択がなかった(おそらくなかった)にも関わらず、毎日5通ほどの営業メールが来るわけです・・・・・・
’vava-lu.shopが今なら安くで買えますよ!’などなど・・・・・
↑これ毎日来てました
.shop が欲しい人なんてどちらかといえば少数だろボケ!!
失礼しました、素が出てしましました 興奮してしまいました・・・。
もちろん迷惑メールにいくよう登録しましたが、購入したユーザーに対してこういった明らかに迷惑とわかるメールを毎日何通も(非常識レベル)送るのはどうかと思うわけです。
本当に欲しかったら、またあなたのところで買いますよ?何もしなくても・・・
設定とか一度してるのでわかりやすい同じところでしたがるのが人間ですから。
送るにしても頻度を考えて欲しいです。
ただ自分もこれを受けて勉強になったので、感謝ではありますが。
それでは、ババールでした。
勉強時間確保してたら記事が全然書けない話・・・
忙しくてなかなか記事が書けずにいました、ババールです。
書こうと思えば書けるのですが、その分勉強したほうがいいというのが頭にありなかなか勉強した課題など記事にまとめられない日が続いていますが、元気にやっております。
勉強内容を勉強した順に並べてみようかと思います。
・HTML基礎
・ローカル開発環境の構築
・PHP基礎一通り
・データベースについて基礎あれこれ(MySQLなど)
といった具合に進んでますが、CSSの勉強もそろそろ始めようかなと考えています。
基本自分はスクールでの課題と、ドットインストールの動画を見ながら知識を付け、わからないことがあるとググることで知識を蓄えていくという勉強方法です。
なので、時間があれば課題に対して、もっと違うやり方(違うコードの書き方)があるんじゃないかとネット徘徊してるわけです。
そうしてたらブログ書いてる時間あれば知らない組み込み関数覚えたい!ってなるわけです。
もっと効率良く勉強できたらブログの時間作れるんだろうなぁと思いますが、日々知識付いているのでまあいいかなとも思っています。
時間欲しいなぁ・・・・・ババールでした。
課題パート2 ユーザー定義関数使ってみよう
こんにちはババールです。
スクールでの課題をこなしていくうちにわかりにくかった、またはためになったことを紹介していこうというパート2でございます。
今回はユーザー定義関数について書いていこうかと思います。
ユーザー定義関数とは、ユーザーすなわちここではコードを書いた本人が定義した(決めた)関数というわけですね。
関数とは、決まったものを渡すと決まったものを返してくれるシステムのことです。
すなわちユーザー定義関数とは、あらかじめユーザー(プログラマー)がこういう値がきたらこういう処理をした後に返却してくれる関数(システム)を定義(作った)したものです。
そうすることで、いちいちその処理ごとにコード書く面倒さを解消してくれるわけですね。
では実際にユーザー定義関数を作ってみましょう。
作り方です
function 関数名( ){
処理内容
}
としてあげるだけです。
ユーザー定義関数の呼び出し方は
関数名( ) ;
と書いてあげれば、処理内容が出てきます。
では、”初めましてババールです”という関数を定義して呼び出すコード書きましょう。
<?php
function vava-lu( ) {
echo "初めましてババールです" ;
}
vava-lu( ) ;
となります。
では今度は関数内に計算の処理を組み込んで、その関数を利用して値を入れるだけでその値に10をかけた計算結果を得られるコード書いていきましょう。
function keisan( $int ) {
echo $int * 10 ;
}
keisan( 3 ) ;
こうしてあげると3×10が処理されて30が出力されます。
関数内に$intという変数がありますが、keisan( $int )としてあげれば、関数を呼び出すときに( ) 内に値を入れることで、その値を代入した関数処理結果を得られることになります。
ここでの3(渡した値)のことを引数(ひきすう)と呼びます。
複雑な関数になればなるほど、このユーザー定義関数が生きてくるわけです。
今回は初歩的なユーザー定義関数を書いていきましたが、もう少し深く使ったものをまた違う記事で書いていこうかと思います。
それではババールでした。
課題パート1 PHPの型定義
スクールでの課題をやっていて引っかかったところを書いていきます。
そのパート1ということで、PHPの型定義について書いていきたいかと思います。
型とは、コンピュータ上でのデータ(いわゆる値のこと)の型(タイプ)のことです。
そのデータ型をPHPでは宣言(決めてあげること)しなくても勝手に判断してくれるんですね。
例えば
<?php
$a = 2.5;
$b = 3;
echo $a*$b;
といったコードを書いたとします。
この出力結果は、7.5となります。
もし、ここで出力結果を整数にしたい場合があるとします。
そこでデータ型を決めてあげることで7.5を整数にすることができます。
型定義の仕方は、変数の前に(型名)を付けてあげるだけです。
変数$aを整数型にしたい場合は
(int)$a
とすればいいです。
では上記のコードではどうなるかというと
<?php
$a = 2.5;
$b = 3;
echo (int)($a*$b);
となり、ここで (int)$a*$b と書いてしまうと、$aが整数型と定義されてしまうので注意してください。
型を決めることをキャストすると言います。
以下、よく使われる型キャストです。
- (int), (integer) - 整数へのキャスト
- (bool), (boolean) - 論理値へのキャスト
- (float), (double), (real) - float へのキャスト
- (string) - 文字列へのキャスト
- (array) - 配列へのキャスト
- (object) - オブジェクトへのキャスト
PHP以外の言語、例えばJava言語では最初にその変数を定義してあげないといけないのです、めんどくさいですね。
・・・・・そうです、そのめんどくさいと思うことがもっとめんどくさくなってしまう原因になるわけです。
他の言語では定義を最初にするため、型を頭でわかった上でコードを書いていくため問題など起きた時にわかりやすい場合が多いです。
PHPだとコンピュータが勝手に型を判断するため、コードをスラスラ書いていける反面、特に初心者は頭にあまり型など意識しないで書いてしまうこと多々あります。
まあその分、初めての言語としてPHPは取っ付き易く勉強も進めやすいのだと思います。
ただ、その裏には他言語とのギャップがあることをわかった上で勉強していかないといけないですね。
ババールでした。
目に見えない相手にこそ
こんにちはババールです。
最近扁桃炎を拗らせてしまってスクールを休みがちになってしまいなかなか勉強ができていません。
そんな中スクールのメンターさん(スタッフの先生)からメールが届きました。
内容は、体調を心配してくれていることや、よければ休養を取って体調が戻り次第通学を再開してもいいですよといったものでした。
課題などが進まない状況で不安になっている時にメールをくれたので大変安心できました。
何が言いたいかというと、信頼できるスクールを選んだほうがいいということです。
もちろん最初から信頼できることはないのはわかりますが、スタッフの人たちと話す機会は多いに越したことはなく、どんなスクールなのか、どんなポリシーで動いているのかを知ったほうがいいかと思います。
プログラミングを勉強していると、ネットで知り合った人との意見交換などもすることがあるのですが、そういう時に大事なのは目に見えない相手の配慮だったりするのです。
プログラムを書く時と同じなのではないでしょうか?
目に見えない人、画面の向こうにいる人、そういった相手を意識しながら勉強していこうと今は強く感じています。
ババールでした。
自分なりにおすすめするハズレのないエディタまとめてみた
プログラミングを書くときのエディタはどんな人でもどれを使おうか1度は悩んだ経験があるかと思います。
使いやすさ、OSへの対応性、拡張性などを絞って3つ選びました。
ババールが簡易的にまとめてみようかと思います。
1.Atom
・Githubが公開した無料で使えるエディタ
・Windows、Mac OS X、Linuxで利用可能
・プラグインの数が豊富であり、機能を自分好みに色々導入することができる。
2.サクラエディタ
・日本で作られた無料エディタ
・Windowsで利用可能(EasyWineを使えばMacでも利用可能)
・国産エディタなのでインターフェイスが日本語で使える
Sakura Editor - A Japanese text editorでダウンロード
3.SublimeText
・有料だが機能性が高い
・Windows、Mac OS X、Linuxで利用可能
・プラグインが豊富で動作がとても軽い
Sublime Text: The text editor you'll fall in love withでダウンロード
僕が使っているのはAtomですが、プラグインを入れればドットインストールを見ながらコードが書けるため使っており、それがなかったら上3つどれを使っていてもおかしくなかったかと思います。
使い始めたらしばらくそのエディタを使い続ける人が多いんじゃないかなぁと思います。
何かのタイミング、それもよほどの理由などない限り使い慣れたエディタを変えることはありませんもんね。
エディタは無数にあるので当たり外れは多いかと思いますが、玄人なわけではない僕は下手なことも書けないですが、上3つを選んでおけば間違いはないのではないでしょうか。
ババールでした。