タグ

phpに関するcelitanのブックマーク (25)

  • 保守性・管理性が劇的に上がるPHPのスマートなコードの書き方12選 | BULK SERVER blog

    プログラミング言語には様々なものがありますが、その中でも比較的人気なのがPHPです。PHPHTMLファイルに直接記述できるスクリプト言語であり、その手軽さや言語自体のわかりやすさなどから、主にWebサービスの制作でその人気を獲得しています。 PHPは他の言語に比べてとても簡単な仕様となっており、初心者でもすぐにマスターすることができるものです。そして、同じプログラムを書く際でも複数の書き方が可能になっており、使用者に合わせた柔軟性も兼ね備えています。 そのような様々な書き方があるならば、なるべく手短でスマートなコードの書き方をマスターしたいものです。コードをスマートに記述することは以下のメリットがあります。 見やすくなることで保守・管理性の向上 コード量の短縮 記述時間(制作時間)の短縮 組織でのプログラミングルールの簡潔化が可能 このようにメリットが様々あるので、同じプログラムであれば

    保守性・管理性が劇的に上がるPHPのスマートなコードの書き方12選 | BULK SERVER blog
    celitan
    celitan 2014/08/12
    “ HTML・CSS ”のエントリーだから仕方ないw
  • ソースコード20万行の大規模サイトのPHPを5.1から5.4に上げるためにやったことまとめ · DQNEO日記

    所要期間 着手しはじめたのが2010年12月ごろ、完了したのが2013年9月だったので何と3年近くかかったことになります。 長引いた原因は、日々の機能追加や運用をしながら孤独に片手間で細々とやってたからです。(単純に人手不足とも言う) また、PHPバージョンアップと同時にCentOSサーバを5から6にあげることにしたのでサーバ再構築のための工数も含まれています。 後半は仕事仲間が増えてその人が専業でバージョンアップ作業をやってくれたのでだいぶ楽できました。 それと専任のテスターさんたちにも参加していただいたので番で大きなトラブルなく完了することができました。 感謝感謝です。 サーバ入れ替え作業が終わってPHP5.1の入った古いサーバを削除したときの、まさに「技術的負債」を返済し終わった瞬間の、あのスッキリ感、もう言葉にはできません。 終わってみてこの件に関するRedmineのチケットを数

    ソースコード20万行の大規模サイトのPHPを5.1から5.4に上げるためにやったことまとめ · DQNEO日記
    celitan
    celitan 2013/11/18
    怖い
  • gitのpre-commit hookを使って、綺麗なPHPファイルしかコミットできないようにする – まなドット

    PHPのようなゆるふわな言語を安全に書くためには、コードの綺麗さや作法などを担保する手段が大切になります。 IDEを使う、JenkinsなどのCIサーバーを立ててチェックさせるなどの方法が考えられますが、今回はgitの pre-commit hook を利用して、一定の条件を満たしていないコードはそもそもリポジトリにコミットができないようにしてみました。 できるようになったこと 今回以下の様な事ができるようになりました。 git commit時に、 コミットされるファイルにシンタックスエラーがあるPHPファイルがる場合、コミットが失敗する。 コミットされるファイルに作法の悪いコードが有る場合、(使用してない変数があるなど)コミットが失敗する。 PSRに則ってないファイルが有る場合(改行コードやインデントの統一など)、整形してからコミットする。 これにより、レポジトリ上にコミットされるファイ

    celitan
    celitan 2013/08/09
  • PHP: trim - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    celitan
    celitan 2012/11/27
    わかるかな?
  • これからPHPを始める人たちへ - id:k-z-h

    phpインターネットしてないでコードを書きましょう

    celitan
    celitan 2012/04/11
    はい。
  • classとか気づいたこと - Web的な何か

    今までclassについて深く勉強していなかったので、改めて確認してみることにした。 今回簡単に作ってみたclassは以下の通り。 動作は"createArray"で作られた列をforeachで一覧に出力している。 //classのテスト class Test { public static $staticTest = "staticの動作テスト\n"; public function createArray() { $res = array( "列一個目", "列二個目", "列三個目", "列四個目" ); return $res; } public function testEcho() { $array = $this->createArray(); foreach ($array as $val){ echo $val, "\n"; } } } 作ったclassをこのように呼び出し

    classとか気づいたこと - Web的な何か
  • PHPカンファレンス2011 で"PHPとテストとCIと私〜愛するあなたのため〜"というタイトルで発表してきました - Yamashiro0217の日記

    PHPカンファレンス2011 で"PHPとテストとCIと私〜愛するあなたのため〜"というタイトルで発表してきました。 当日は、ほとんど寝ず、午前中は #nekkonという結婚式に参加してからの発表だったから辛かった。実質寝てねーからつれー。発表つれー。 内容としては架空の某システムの裏方に入った、 架空の人が、いかにレガシーコードと戦い、TDDやCIを適用していったか、 また、適用するにあたりどういう便利なツールを使ったか、 また、チームにそれらの文化を浸透させるためにどうしたか。 などといった内容となっています。 以下がプレゼンのスライドを Slideshareに上げたやつです。あとUSTの録画もありました。 http://www.ustream.tv/recorded/17177077 PHPカンファレンス2011 PHPとテストとCIと私〜愛するあなたのため〜View more pr

    PHPカンファレンス2011 で"PHPとテストとCIと私〜愛するあなたのため〜"というタイトルで発表してきました - Yamashiro0217の日記
    celitan
    celitan 2011/09/10
    これはとてもよいスライド
  • PHP5.3.7のcrypt関数に致命的な脆弱性(Bug #55439)

    PHP5.3.7のcrypt関数には致命的な脆弱性があります。最悪のケースでは、任意のパスワードでログインできてしまうという事態が発生します。該当する利用者は、至急、後述する回避策を実施することを推奨します。 概要 PHPのcrypt関数は、ソルト付きハッシュ値を簡単に求めることができます(公式リファレンス)。crypt関数のハッシュアルゴリズムとしてMD5を指定した場合、ソルトのみが出力され、ハッシュ値が空になります。これは、crypt関数の結果がソルトのみに依存し、パスワードには影響されないことを意味し、crypt関数を認証に用いている場合、任意のパスワードでログインに成功する可能性があります。 影響を受けるアプリケーション crypt関数を用い、ハッシュアルゴリズムとしてMD5を指定しているアプリケーション。 環境にも依存しますが、デフォルトがMD5の場合もあります。筆者のテスト環境

    celitan
    celitan 2011/08/23
    こんなことがあるのか・・・
  • PHPでTDD&CIワークショップ、Jenkins + PHP の各種プラグインパート資料 - Yamashiro0217の日記

    はじめに この資料は「PHPでTDD&CIワークショップ」 http://atnd.org/events/16626 で @yamashiro が発表するための資料だよ。 ワークショップ参加者じゃなくても記事読むだけで完結するようには書いてあるよ。 概要としては、Jenkins を使って PHP のウンコレガシーなコードをいかに綺麗にして行くかということを説明する。 自画自賛だけど PHPMD とか PHPCPD の使い方の説明の資料としてもそこそこイケてる資料になってると思いました。まる。 この記事に書かれてることは、割とTemplate for Jenkins Jobs for PHP Projectsとかぶってるけど、プラグインを絞ってあるのと、一個一個のプラグインについて解説、また実際にエラーが起きたときにどうすればいいのか書くよ。 Java と Jenkins のインストールとJ

    PHPでTDD&CIワークショップ、Jenkins + PHP の各種プラグインパート資料 - Yamashiro0217の日記
    celitan
    celitan 2011/06/20
    さすがyamashiro先生
  • 『パーフェクトPHP』――disられないPHPを書くためのパーフェクトな指南:晴読雨読@エンジニアライフ:エンジニアライフ

    パーフェクトPHP 小川雄大、柄沢聡太郎、橋口誠(著) 技術評論社 2010年11月 ISBN-10: 4774144371 ISBN-13: 978-4774144375 3780円(税込) ■「例えば、PHPを避ける」の衝撃 Webプログラミングの分野で大きなシェアを持つスクリプト言語、PHP。しかし、プログラマのコミュニティ界隈では「PHPをdisる」ことが、風物詩のように行われている。 原因の一端は、おそらくIPAの「セキュア・プログラミング講座」というコンテンツだろう。『より良いWebアプリケーション設計のヒント』というページには、公開当時『例えば、PHPを避ける』というかなりショッキングな記述がされていた(現在は修正されて『プログラマが脆弱性をつくり易い環境を避ける』という表現になっている)。 当時の記述については、こちらのブログ記事が引用して紹介している。安全なプログラミング

    『パーフェクトPHP』――disられないPHPを書くためのパーフェクトな指南:晴読雨読@エンジニアライフ:エンジニアライフ
  • 典型的PHPerの13の悪癖

    はてな匿名ダイアリーで不穏なことが書かれていたが、職場などで見かけない事も無いので解説をつけて内容を転載しておく。 典型的な“嫌なタイプ”のPHP使いの特徴を「典型的PHPerの13の悪癖」というタイトルでまとめてあるものだ。PHP育ちの叩き上げの人が陥りやすい問題も含まれていると思うので、紹介したい。 1. パスワード認証sshでサーバーにログインし、vimemacsで開発をする。 PHPerは、生産性が低く、セキュリティ的に問題のある開発環境を愛用しているケースが多々ある。セキュリティ向上の為にはsshは公開鍵認証で使うべきだし、生産性向上のためには、一般的にはローカルに開発環境を用意して、Eclipse/PDT等の統合開発環境を使うべきであろう。 2. SVNなどのバージョン管理システムで、使い方が分からないのでブランチを切った事が無い。 開発ツールの学習に無頓着なPHPerは少な

    典型的PHPerの13の悪癖
    celitan
    celitan 2011/03/30
  • PHP で凄く簡単に GET/POST 送信ができる関数を作りました | ウェブル

    以前こちらの URL で GET/POST を簡単にできるコードを書きましたが、問題があるとのことで多くの指摘を頂きました。zaru さんに正しいコードを書いて頂きましたので下記の記事をご覧ください。 PHP で凄く簡単に GET/POST 送信ができる関数を勝手に改良した | zaru blog 下記にコードを引用させて頂きます。いくらか稼働させた所 curl の方が安定していることが分かりましたので、こちらを引用させて頂きます。curl がインストールできない環境等では zaru さんの記事の別のコードを使用してください。 function wbsRequest2($method, $url, $params = array()) { $data = http_build_query($params); if($method == 'GET') { $url = ($data != '

    celitan
    celitan 2011/03/08
  • 自分の部下には「パーフェクトPHP」を読んでおいてもらいたい理由5つ - しんふぉにゃん

    自分の部下には、「これ読んどけ!」と必ず渡しておきたい1冊です。 PHPの開発現場で実際に必要な知識を幅広くカバー さすがにこれで「全部」というわけにはいきませんが、書かれている内容はどれも「必要」 MVCフレームワークの用語や知識 必要最小限かつモダンな設計のMVCフレームワークを「作る」解説、MVCフレームワークを使いこなすためには必須の知識 オブジェクト指向でPHPを書く場合の必須知識を網羅 「5章 クラスとオブジェクト」が50ページ以上、「11章 実践オブジェクト指向」が40ページ PHPでWebアプリケーションを作る際に必須のセキュリティの知識も網羅 must readとしか言いようがない PHPの内部構造の知識も適度にカバー 掘り下げ具合のさじ加減がちょうどいい パーフェクトPHP (PERFECT SERIES 3) 作者: 小川雄大,柄沢聡太郎,橋口誠出版社/メーカー: 技

    自分の部下には「パーフェクトPHP」を読んでおいてもらいたい理由5つ - しんふぉにゃん
  • IDEA * IDEA

    ドットインストール代表のライフハックブログ

    IDEA * IDEA
    celitan
    celitan 2010/11/09
    これは良いネタ集
  • 『[PHP] デーモンとして動かせるTwitter botの作り方』

    「OAuthを使ってPHPからTwitterへ投稿する 」にて、OAuth経由でTwitterへの投稿の仕方が把握できたので、Twitter用のbotを作ってみることに。 今回は、さらに以前に書いた「PHPのプログラムをデーモンとして動かしてくれるPEAR::System_Daemon 」を使うことで、cronを利用することなしにbotを常時動かせるようにしてみます。 OAuthの認証はPEARパッケージのHTTP_OAuth を、そしてPHPのプログラムをデーモンとして動かすために同じくPEARパッケージのSystem_Daemon を使って構築します。 それぞれの使い方は、上記エントリを参照してみてください。 今回作るbotは、とてもシンプルに1分ごとに現在の日時をTwitter上に投稿するというものです。 OAuth認証時に必要なコンシューマーキーやアクセストークンの取得方法等につい

    『[PHP] デーモンとして動かせるTwitter botの作り方』
    celitan
    celitan 2010/09/09
    デーモンとして動かせるBOTの実装例
  • mixi日記投稿用APIを使ってPHPからmixi日記にポスト | Creazy!

    via: mixi for iPhoneから発掘されたmixi日記投稿用API « ku という事で、iPhone用のアプリをキッカケにmixi日記にポストできるAPIが見つかったそうです。Perlのサンプルコードもあって、すぐ何か作れそうですね・・・と思ったのですが、どちらかというとPHPerなんで、PHPのサンプル作ってみました。 mixi日記投稿APIPHPサンプルコード <?php error_reporting(E_ALL); require_once 'HTTP/Request.php'; // mixi USER infomation $user = 'mixiのログインID'; $pass = 'mixiのパスワード'; $id = 'mixiのユーザーID'; // WSSE Authentication $nonce = pack('H*', sha1(md5(tim

    mixi日記投稿用APIを使ってPHPからmixi日記にポスト | Creazy!
  • HTMLをDBみたいに使えるスゴイライブラリ『htmlSql』を CakePHPで使う - h2ospace - builder by ZDNet Japan

    APIRSSなどを提供しているサイトは、情報を簡単に扱うことができますが、例えば Yahoo!の検索結果とか、mixiのニュースとか、あるサイトの一部を取り出したいことってよくあります。(とはいえ、著作権違反には注意 そんな時、PHPのライブラリである「htmlSql」を利用すると便利。このライブラリに、ファイルでもURLでも文字列でも、HTMLで作られたものなら何でも与えると、解析して取り出しやすくしてくれます。しかも、その取り出し方はSQL! 例えば、「id属性が’test’の p要素の内容を取り出したい」という場合には、次のようなSQLを使います。 SELECT text FROM p WHERE $id=="test" 超パワフル。ということで、これを CakePHPで利用するためのテクニック。 まずは、ダウンロードしたファイルの中から次のファイルを「app/vendors」フォ

  • ke-tai.org > Blog Archive > OSC 2010 北海道の発表で使用したスライド資料「PHPで大規模ブラウザゲームを開発してわかったこと」

    OSC 2010 北海道の発表で使用したスライド資料「PHPで大規模ブラウザゲームを開発してわかったこと」 Tweet 2010/6/28 月曜日 matsui Posted in PHP, お知らせ | 7 Comments » 先日6月26日、札幌で「オープンソースカンファレンス2010 北海道」が行われ、無事終了することができました。 当日は来場者数が過去最高の約450名となり、閉会式は会場に収まりきらないくらいの大盛況でした。 ご来場者の方々、スタッフ・事務局の方々、当にありがとうございました。 私も1コマセミナー枠を戴くことができまして、弊社で「ブラウザ三国志」というゲームのプログラム開発を行った際の苦労やノウハウなどをまとめた、「PHPで大規模ブラウザゲームを開発してわかったこと」という発表を行わせていただきました。 お越しいただけなかった方のためにも、その際に使用したスライ

  • PHPにおける文字列比較の2a問題 - Unknown::Programming

    PHPの文字列比較に関しては古の時代から皆がいばら道を通っているので今更何か語ることも無いんだけどやっぱり良くハマっちゃうということで軽くメモを残しておく。 とりあえずは先人達の苦悩ということでこのあたりの記事は見ておいた方がいいだろう。 素晴らしき自動的な世界〜或いは「型のない」世界〜 - がるの健忘録 PHPでの入力値チェックのすり抜け 上記記事の方が名づけたと思われる(w)いわゆる「2a問題」というものについて書いていく。 この2a問題というのはもう一度再確認すると <?php $a = '2a'; $b = 2; if ( $a == $b ) { // ここを通る } という問題のことだ。 何故こうなるかは元記事やマニュアル等に詳しく書かれているが、カンタンに説明すると「2a」という文字列を数値評価すると「2」として扱われるということだ。 実はコレはPerlでもまったく同じ問題を

    PHPにおける文字列比較の2a問題 - Unknown::Programming
  • 簡単!たった6行のコードで HTML取得&解析をするPHPスクリプト - 遠い目日記

    Re:簡単!たった13行のコードで HTML取得&解析をするPerlスクリプト - DQNEO起業日記 に感化されて、PHP版を作ってみました。 パースライブラリは以下を使います。 http://sourceforge.net/projects/simplehtmldom/ require_once('simple_html_dom.php'); $url = 'http://www.yahoo.co.jp/'; $user_agent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)"; $dom = file_get_html($url,false, stream_context_create( array( 'http' => array( 'header' => "User-Agent: " . $

    簡単!たった6行のコードで HTML取得&解析をするPHPスクリプト - 遠い目日記