1 | 2 | 3 | 4 | 5 |最初 次ページ >>
2016年08月28日(日)

FuelPHPでバッチを書いて動かしてみる

テーマ:プログラミング

前回の続きでFuelPHPネタ。APIの書き方は理解して且つレンタルサーバ上のPHPコマンドのバージョンも上げられたのでFuelPHPをcomposerで入れられるようにもなった。

で、次はバッチ処理。スクレイピングとか画像処理なんかをDBに突っ込んであるキューを元に処理していきたいのでバッチ処理が使えないと話にならんということで早速書いてみる。
 

app/test.hoge.com/fuel/app/tasks/hello.php

namespace Fuel\Tasks;

class Hello
{
    public static function run()
    {
        echo 'hello', PHP_EOL;
    }

    public static function execute($args1 = "fuga", $args2 = "hoge")
    {
        echo 'hello, ' . $args1 . ':' . $args2, PHP_EOL;
    }
}


バッチは fuel/app/tasks/ 配下に書く決まりらしい。run()メソッドはバッチクラスのメインメソッドで実行時にメソッド名無しに呼び出してくれる。ほとんどはこのrun()メソッドに実装すれば良さそう。ちなみにクラスメソッドでもインスタンスメソッドでも動いた。

同一バッチクラスに実行メソッドを複数実装することも可能。上の例だとexecute()メソッドがそれ。引数も指定可能でメソッドの引数分、コマンド実行時に受け取れる模様。

それでは実行してみますかね。

 

$ php oil refine hello
hello
$ php oil refine hello:execute japan world
hello, japan:world


Oilコマンドを使ってそれぞれ実行。ふむふむ、バッチも簡単に実装できるんだね。ただ fuel/app/tasks/ 配下にサブディレクトリを作っての実行はできなかった。調べてみるとこれはFuelPHP2.0で対応予定らしい。

そう言えばタスククラスのメソッドはクラスメソッドでもインスタンスメソッドでもどちらでも動く訳だけど、どっちが良いんだろうね?生成しないで使える分クラスメソッドで書いた方が早いとは思うけど幾つも生成する訳でもないし、違いは無いのかな?

残りはDB周り、ログ、定義ファイル周りをチェック。また次回。

AD
いいね!した人  |  コメント(0)  |  リブログ(0)
2016年08月15日(月)

レンタルサーバでFuelPHPをインストールしてAPIを動かしてみる

テーマ:プログラミング
久しぶりのプログラミングネタ。最近Laravel/Lumen、FuelPHPが仕事で顔をきかせてきたので、趣味で使うフレームワークをFuelPHPに切り替えようと手を動かしてみた。

まずは環境としてFuelPHPをレンタルサーバにインストール。入れようとしているサーバでcomposerが動かないのでZIPを落としてインストール。アーカイブはFuelPHPの公式サイトからダウンロードできる。今だとver.1.8.0らしい。

アーカイブを展開してサーバに配置。publicディレクトリは公開ディレクトリだろうからサーバ内の公開ディレクトリのサブディレクトリとして配置。他はアプリケーションディレクトリのサブディレクトリとして配置。いつもサイト別にドメイン名でディレクトリを切ってその下に配置する癖があるので、結果下記の様になった。今回はサブドメ設定。

username/
 ├ app/
 │ └ test.hoge.com/
 │   └ fuel/
 │     └ app/
 │     └ core/
 │     └ packages/
 │     └ vendor/
 └ public_html/
   └ test.hoge.com/
     └ assets/
     └ .htaccess
     └ favicon.ico
     └ index.php
     └ web.config

あとは幾つかファイルを修正。

public_html/test.hoge.com/.htaccess
# Remove index.php from URL
RewriteCond %{HTTP:X-Requested-With} !^XMLHttpRequest$
RewriteBase /
RewriteCond %{THE_REQUEST} ^[^/]*/index\.php [NC]
RewriteRule ^index\.php(.*)$ $1 [R=301,NS,L]

public_html/test.hoge.com/index.php
define('APPPATH', '/<ユーザディレクトリ>/username/app/test.hoge.com/fuel/app/');
define('PKGPATH', '/<ユーザディレクトリ>/username/app/test.hoge.com/fuel/packages/');
define('COREPATH', '/<ユーザディレクトリ>/username/app/test.hoge.com/fuel/core/');

app/test.hoge.com/fuel/app/config/config.php
'language' => 'ja',
'locale' => 'ja_JP.UTF-8',
'encoding' => 'UTF-8',
'default_timezone' => 'Asia/Tokyo',

これだけでFuelPHPのウェルカムページは表示できた。素直だなぁ、で次はAPIの実装。
とりあえず固定値を返すだけの空API。

app/test.hoge.com/fuel/app/classes/controller/hello.php

class Controller_Hello extends Controller_Rest
{
    protected $format = 'json';

    public function get_world()
    {
        $list = array(
            'string' => Input::get('string'),
            'int' => array(
                10, 20, 30
            ),
        );
        return $this->response($list, 200);
    }
}

じゃあ実行してみますか。

$ curl -i http://test.hoge.com/hello/world?string=php
HTTP/1.1 200 OK
Date: Sun, 14 Aug 2016 23:51:26 GMT
Server: Apache
X-Powered-By: PHP/5.3.29
Transfer-Encoding: chunked
Content-Type: application/json

{"string":"php","int":[10,20,30]}

ふむふむ。簡単。
今回はコントローラのformatプロパティでjsonを指定したけど、未指定でAPIのエンドポイントに.jsonもしくは.xmlを付与すれば返却形式を指定できるっぽい。

今更ながら、FuelPHPはグッド。個人的には軽量な薄いフレームワークが好きなので一気にFuelPHPに乗り換えても良さそうな勢いなんだけど、あと確認するのはDB、バッチ処理、画面周りを見て必要ならカスタマイズですかね。

AD
いいね!した人  |  コメント(0)  |  リブログ(0)
2016年03月27日(日)

モニタを自由に固定できるモニタアーム サンコーMARMGUS192B を買ってみた

テーマ:PC周辺機器
モニタを自由に固定できるモニタアーム サンコーMARMGUS192B を買ってみた

みなさん、モニタアームって使ってますか?机の上が広くなるので前から気になっていたんですが、自宅で使っているDELL U2713HMのスタンドが上下左右・回転自由自在と優秀だった為なかなか購入するまでに至らなかった訳ですが、とうとう買ってしまいました。そして、やはり、机の上がスッキリ広々となって大満足です。

モニタの標準スタンドって思ってる以上に場所を食ってたんですねぇ(スタンドを使っていた頃の写真はこちら)。スタンド装着時だとモニタ下がスタンドの足になってデッドなスペースになる訳ですがモニタアームにすると何も無くなってスッキリ。ランランです。

ちなみに、モニタアームと一言で言っても製品はたくさんあって正直どれを購入するべきか選びかねる訳ですが、そういう時はアマゾンで評価が良く且つお手頃感のある価格のものということで「サンコー 4軸式くねくねモニターアーム MARMGUS192B」をチョイスしてみました。

名前の通りアームは4軸あり好みの位置にモニタを固定できます。ただピシャッと固定できるんで若干軸が固いですね。ゆるゆるよりはましですが。自宅では下の写真のようにアームを奥側に折ることでモニタを机の奥に持っていき机を広く使えるようにしています。それぞれの軸の作りや素材の質感は良品で安っぽさは皆無です。サンコーというメーカーがいい仕事をするメーカーだというのが窺えます。

モニタを自由に固定できるモニタアーム サンコーMARMGUS192B を買ってみた

アームの支柱部分はクランプ構造で、2本のネジで机と固定します。こんなんで5.6kgのモニタを支えられるのか心配でしたがまったく問題無しですね。仕様上では10kgまでのVESA規格モニタに対応している様です。

「4軸式くねくねモニターアーム MARMGUS192B」メーカー紹介ページ
http://www.thanko.jp/product/760.html

モニタを自由に固定できるモニタアーム サンコーMARMGUS192B を買ってみた

アームのグラつきが無くしっかりした造りで、組み立ても説明書を読まなくても分かるレベルなので組み立てに自信がない人でも安心です。もしこれからモニタアームの購入を考えていますが購入する製品が決まっていない人が居るようでしたらお勧めです。今度はモニタの裏にLEDを付けて手元を照らしてみますかねぇ。

AD
いいね!した人  |  コメント(0)  |  リブログ(0)
2016年03月20日(日)

飲みたい時にいつでも飲みたい飲料水 キリン アルカリイオンの水

テーマ:モノ
飲みたい時にいつでも飲みたい飲料水 キリン アルカリイオンの水

みなさんのご家庭では飲料水っていつもどうされてるでしょうか?自分がまだ子供だった頃は水道水をそのまま使っていた記憶があるんですが、今ではペットボトルの水を買って飲んだり料理に使うのが当たり前になってます。ご家庭によっては浄水器をつけるところもあるんですかね。

ペットボトルの水を買う場合って案外自宅まで持って帰るのが重かったりかさばったりして大変だったりするんですよね。うちは自分が運搬役なんで、正直面倒くさいなぁと。

飲みたい時にいつでも飲みたい飲料水 キリン アルカリイオンの水

そんななんで、最近では2Lタイプの水をアマゾンで購入するようにしてます。上の写真が2L6本が2ケースセットになった梱包。結構でかいし重いです。これがアマゾンだと翌日に届き、且つ玄関先まで持ってきてくれる訳ですね、楽ちんです。

水と言ってもさすがアマゾン、種類はだいぶあって選択に悩むと思いますが、ここは評価が良くて安いものと言うことで「キリン アルカリイオンの水 (2L×6本)×2箱」を購入してます。ちなみにこの水はベストセラーNo.1になっている水。大体1,000円前後で購入できるので2L1本当たり80円前後。玄関先まで持ってきてくれることを考えると安い安い。配送マンには感謝感謝です。

と言う、うちの生活インフラに少しずつ入り込むアマゾンの話でした。


いいね!した人  |  コメント(3)  |  リブログ(0)
2016年03月15日(火)

Windows 10でXAMPPのApacheが起動しないときの解決方法

テーマ:プログラミング
Windows 10でXamppのApacheが起動しないときの解決方法

自宅のWindows 10にXAMPPをインストールした際、Apacheが起動しないくなった。7の時は問題なく動いていたのになぁと思いながらエラーログを見てみるとプロセスID 4がポート80を使っているので駄目らしい。PID 4とは誰ぞ?!

Windows 10でXamppのApacheが起動しないときの解決方法

タスクマネージャーで確認するとSYSTEM、Kernel & System、なんかWindowsそのものが使っている模様。そんな設定をした覚えはないんだが。。。

と言うことでちょっと調べてみると、WindowsにはIISが搭載されていてこいつが有効になっている場合があるとか。なるほど、それじゃ80番は使われちゃうよね。しっかし、そんな機能はデフォルトでは無効にしておいてほしいんだけどなぁ。何を外に公開しようとしてんだよってねぇ。

コントロールパネル(Windows 10の場合はスタートメニュー右クリック)を起動して「プログラム」、「Windowsの機能の有効化または無効化」を実行。

Windows 10でXamppのApacheが起動しないときの解決方法

インターネットインフォメーションサービス、IISの設定を見るとWWWサービスが有効になってる。これを無効化すればいいのかな。Windows 10になってIISがデフォルトで有効になったのはどんな理由からなのかなぁ、一般の人にもウェブページを公開させるためとか?まさかねぇ。

無効化してもPID 4は残っていますが80番は解放している様で、XAMPPのApacheは問題なく起動するはず。こんなとこでWindows 10の影響がでるとは。


いいね!した人  |  コメント(0)  |  リブログ(0)
1 | 2 | 3 | 4 | 5 |最初 次ページ >>

AD

Ameba人気のブログ

Amebaトピックス

      ランキング

      • 総合
      • 新登場
      • 急上昇
      • トレンド

      ブログをはじめる

      たくさんの芸能人・有名人が
      書いているAmebaブログを
      無料で簡単にはじめることができます。

      公式トップブロガーへ応募

      多くの方にご紹介したいブログを
      執筆する方を「公式トップブロガー」
      として認定しております。

      芸能人・有名人ブログを開設

      Amebaブログでは、芸能人・有名人ブログを
      ご希望される著名人の方/事務所様を
      随時募集しております。