Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
Yangsin
@Yangsin
こんにちはー質問です、thinreports-php って、PHP5.6 以上にしぼっている理由ってありますか?
Katsuya HIDAKA
@hidakatsuya
@Yangsin 特にないです。最初は 5.4~ で作ってたんですけど、可変引数の新しいシンタックスを使いたい(func_get_args() 使いたくない)というただそれだけのために 5.6 にしました。各方面から要望いただいてるので、5.4 にバックポートしようと思います。5.3 という要望もありますが、Trait が使えないとなるとちょっと厳しいので一旦保留で。
Yangsin
@Yangsin
そうなんですね。私のやってるEC-CUBEは、PHP5.3までサポートしないといけないのでちょっと聞いてみました。
Katsuya HIDAKA
@hidakatsuya
@Yangsin 5.3 ですか… Trait が使えないとなると、だいぶ構造を変えないといけないので簡単ではないです。Trait 以外に Mix-in 的なことができればいいんですが。ただ、TCPDF も PHP >= 5.3 なので 5.3 でも動作させることは十分可能です。とりあえず 5.4 へのバックポートは近くやります。
Yangsin
@Yangsin
レンタルサーバーが結構5.3なんですよね(苦笑)
なにかこちらでもご協力できることなど探していきます。
ちょっとEC-CUBE3のリリースが大詰めなのでまだまだ動けませんが(^_^;)
Katsuya HIDAKA
@hidakatsuya
なるほど、どおりで他のライブラリも 5.3~ が多いんですね。近く開発ドキュメントをまとめますので、それを下に、まずは私の低い PHP 力へのツッコミや PR をいただけたらありがたいです。あとは開発コミュニティを活性化するために、周りの PHP 使いの方々に声をかけてもらえたら言うことはありません :smile:
Katsuya HIDAKA
@hidakatsuya
PHP5.3+ をサポートすることにしました。それを含めた最初のバージョン 0.8.0-pre1 のマイルストーン https://github.com/thinreports-php/thinreports-php/milestones を作成しています。具体的なリリース日は、ある程度目処が立ってからアナウンスする感じで考えてますが、個人的には 9月には出したいところです。
Yangsin
@Yangsin
:+1:
TSURU
@ttsuru
@hidakatsuya ついにですね!
Katsuya HIDAKA
@hidakatsuya
@ttsuru ぼちぼちがんばります。ちなみに、もしかすると List は捨てるかもしれません。今の List はいろいろダメなのと、本家 v1.0 で List に代わる機能を予定してたりするので。いずれにせよ、こちらで相談しますね。
TSURU
@ttsuru
@hidakatsuya Listなくなるんですか・・・
一覧系ってどうなっていくんですか?
Katsuya HIDAKA
@hidakatsuya
@ttsuru 今のコンセプトの List を捨てるかも、ということなので一覧機能自体は残ります。ご存知でないかもしれませんが、MS Access っぽい感じで、単票レイアウトと連票レイアウトが選択できるようになるイメージです。まだ、コンセプト策定段階ですが。
TSURU
@ttsuru
@hidakatsuya なんとなくイメージが分かりました!
実は基幹系でWindowsのレイアウターをつかってましてレイアウターがあるだけで違いますね。
Katsuya HIDAKA
@hidakatsuya
@ttsuru そうですね、基幹系ならむしろ無いと無理ですね :worried: PHP版は一旦ミニマムなところからスタートしたいと思ってます。また相談させてください!
TSURU
@ttsuru
できればEC-CUBEでも使いたいと思ってまして、その辺りでListどうしようかとか思ってます
Shinichi Takahashi
@shinichi-takahashi
こんにちは〜!お誘いいただきましてありがとうございます。よろしくおねがいします
Katsuya HIDAKA
@hidakatsuya
@shinichi-takahashi よろしくお願いします!
Katsuya HIDAKA
@hidakatsuya
@ttsuru 表全体を定義して、各列は price1, price2,.. みたく貼っておいて、ぐるぐる回しながら price20 (最後の行の price)がなかったら改ページという方法でしょうか。こんな感じですかね。
foreach ($items as $index => $item) {
    if (!$page->hasItem('price' . $index + 1)) {
      $page = $report->addPage();
    }
    $page('price' . $index + 1)->setValue($item->price);
}
TSURU
@ttsuru
@hidakatsuya その手ですね!やはりそうなりますよね、
Winでレイアウター使って専用帳票の位置合わせした時もそんな感じでしてました。
Katsuya HIDAKA
@hidakatsuya
Katsuya HIDAKA
@hidakatsuya
現在の状態で 0.8.0 alpha1 としてリリースすることにしました。5.3 対応は alpha2 で。https://github.com/thinreports-php/thinreports-php/releases/tag/0.8.0-alpha1
Katsuya HIDAKA
@hidakatsuya
Qiita に紹介エントリーを投入しました。試して評価してくれる人が増えるといいんですが。 http://qiita.com/hidakatsuya/items/05eaae740f1523a87685
k-yamamura
@k-yamamura
0.8.0-alpha2のサンプルで用意されている hello_world.php ですがPHP 5.3.29 の環境で動作しました。ご報告まで。
時間が取れればWebアプリに組み込んで動作するか確認してみます。
Katsuya HIDAKA
@hidakatsuya
@k-yamamura ありがとうございます。ぜひお願いします。
ちなみに、unit テストがめんどくさ、、時間がかかるのでざっくり feature テストを書いて alpah2 を出すつもりです thinreports-php/thinreports-php#3
Katsuya HIDAKA
@hidakatsuya
0.8.0-alpha2 をリリースしました。PHP5.3~7 をサポートしたり feature test を書いてカバレッジが 80% になるなどしてます。また、匿名関数を使用したページ追加 API が廃止になってますのでご注意を。詳細は下記をどうぞ。
https://github.com/thinreports-php/thinreports-php/releases/tag/0.8.0-alpha2
Shinichi Takahashi
@shinichi-takahashi
:+1: :+1:
Katsuya HIDAKA
@hidakatsuya
皆様ぜひお試しくださいませ。また、twitter やブログなどで使用レポートなど投稿していただけると嬉しいです :smirk: では!
Katsuya HIDAKA
@hidakatsuya
先ほど 0.8.0 のマイルストーンも修正しましたが、0.8.0 正式版では一覧表ツールを実装しないことにしました。理由は、本家の v1.0 でも一覧表ツールは非推奨となり、その次のメジャーリリース(v1.1)で削除される予定となったからです。
本家でも近くなんらかのアナウンスがあると思います。
Katsuya HIDAKA
@hidakatsuya
v0.8.0 でサポートする複数レイアウト機能の API 仕様について、下記 gist に案をまとめたので意見を聞かせてください。
https://gist.github.com/hidakatsuya/2946e9944e83779f0999
Katsuya HIDAKA
@hidakatsuya

:point_up: 2015年9月7日午後4時52分

個人的には array() を書きたくないので、B案の

$report->addPage('/path/to/other_layout.tlf', false);

が良いと思ってます。A案の方が count オプションを指定するときに読みやすいのですが、count オプションよりもレイアウトを指定することの方がケースとして明らかに多いので簡潔で違和感なく指定できる B案でいいんじゃないかと思ってます。B案は false が何者なのかがわからない問題がありますが、これ以上引数が増える予定もないので現状であれば許容できると思ってます。

ちなみに php5.3 を排除できるなら A案を選ぶかも。ご意見お待ちしてます。

TSURU
@ttsuru
ページをnullでaddPageするケースってどんなのがあるのでしょうか。
addPageでcount=nullのみを指定するということは現在のページをカウントさせないということになるのでしょうか
Katsuya HIDAKA
@hidakatsuya

@ttsuru

案B の addPage(null) のように、第一引数のレイアウトファイルが null の場合は、new Thinreports\Report() の第一引数で指定したレイアウトファイル、つまりデフォルトレイアウトによってページが作成されます。よって「デフォルトレイアウトを使うがページ数のカウントはさせたくない」ケースでは、案 B の場合 addPage(null, false) とする必要があります。

addPageでcount=nullのみを指定するということは現在のページをカウントさせないということになるのでしょうか

count オプションには基本的に boolean を渡すのですが、null だと false と同じなので「カウントしない」ということになります。なお、count オプションを省略した場合のデフォルトは true です。

TSURU
@ttsuru
@hidakatsuya すいません、いろいろ表記まちがっていました。
デフォルトページが追加されるのであれば案Bでよさそうですね!
Katsuya HIDAKA
@hidakatsuya
@ttsuru ありがとうございます。B 案で進めることにします。
Katsuya HIDAKA
@hidakatsuya
thinreports-php/thinreports-php#8 に複数レイアウトファイル指定の詳しい仕様を書いた。
TSURU
@ttsuru
:+1:
PackagistのDependentsまだ0なんですね・・・早くなにか公開したいと思います。
Katsuya HIDAKA
@hidakatsuya
ですねぇ。まだ alpha 版だから、と楽観的に捉えてます。さっさと正式版をリリースして反応をみたいですが、その結果によっては....公開楽しみにしてます。
Katsuya HIDAKA
@hidakatsuya
Katsuya HIDAKA
@hidakatsuya
そういえば、0.8.1 をリリースしてました