Software Engineer Blog

エンジニアブログです。技術情報(Go/TypeScript/k8s)や趣味の話も書くかもです。

laravel4.2プロジェクト作成

composer create-project laravel/laravel=~4.2 /vagrant/hoge --prefer-dist

でcreateすると、

 [RuntimeException]
  Failed to clone git@github.com:laravel/laravel.git via git, https,
  ssh protocols, aborting.
  - git://github.com/laravel/laravel.git
    Cloning into '/vagrant/green'...
    error: could not commit config file /vagrant/green/.git/config

このようなエラーが出ました。

composer create-project laravel/laravel=~4.2 hoge --prefer-dist

ディレクトリを真上にすると、うまくいきました。
原因は不明です。

Existing lock /var/run/yum.pid の際

Existing lock /var/run/yum.pid: another copy is running as pid 14730.
Another app is currently holding the yum lock; waiting for it to exit...
The other application is: yum

のエラーが出た際は、以下のコマンドでyum.pidを削除してしまえば良いみたい。

rm -f /var/run/yum.pid

Bracketsはじめました

その名の通りです。

以下を参考に、プラグインを導入しました。

matome.naver.jp


※注意
タブ機能はデフォルトではないので、必ずプラグイン(Tabs - Custom Working等)を入れないと行けないようです。
(ここで、詰まってました)

ejsでつまづいた情けない話

Node.jsでejsを用いてHTMLに値を入れ込む動作の際になぜかエラーが出続ける。

コードはこれ

<%= posts.forEach(function(post){ %>
<li><%= post %></li>
<%= }); %>

修正した後

<% posts.forEach(function(post){ %>
<li><%= post %></li>
<% }); %>

 

要するに、値を入れるところにだけ'%='にする必要があった。

PHPの$_FILES変数に悩まされた話

node.jsの話はとりあえず置いといて、、、(汗)

他のプロジェクトで使っているPHPの処理の中で$_FILESの扱いに困ったので記録として残しておきます。(以下、信ぴょう性はいまいちですのでご了承ください)

何がしたかったのかというと、「複数ファイルを送信の際、$_FILESの中身があるかどうかの判定をする」ただそれだけです。

ですが、HTMLのformにて<input type='file' name='hoge[]' >があるだけで、isset($_FILES['name])はtrueを返します。それじゃ、中身はどうなっとんやと思いvar_dump($_FILES['name])を出力しようとしたが出ない。

ということで、リファレンスを見ると$_FILESの配列の形がへんてこであると気づく。今回は複数ファイルを送信することもあり、

['hoge'](

     ['name'](

           [0] => test1.txt,

           [1] => test2.txt

    )

...etc

)

という形で格納されていました。

僕は以下の形で入ってると思っていたので驚きました

['hoge'](

     [0](

           ['name] => test1.txt,

          ....

    )

    [1](

        ['name'] => test2.txt,

        .....

    )

)

 

以下のリンクに詳細が書いてあります。(配列の形を、へんてこ=>下の形への変形の方法も書いてあります。)

PHP: 複数ファイルのアップロード - Manual

 

僕は最終的に

foreach($_FILES['hoge']['name'] as $file){

   empty($file[name])'true処理':'false処理' ;

}

と書いて判定を行いました。empty関数を使ったのは、isset関数だと空の文字列でもtrueを返してしまうためです(ファイルが何もアップロードされなかった場合['name'] => ""となる)。

 

こんなことをする必要があったのかは甚だ疑問ですが、残しておきます。