タグ

phpに関するyajamonのブックマーク (45)

  • 25年に渡る PHP の歴史

    PHPエコシステムに長年関与してきたことで知られるコントリビューターが JetBrains に入社。PhpStorm チームとともに PHP 言語とエコシステムの改善を目指す。

    25年に渡る PHP の歴史
  • PHPで動くファミコンエミュレータを作った

    TL;DR PHPで動くファミコンエミュレータを作った php-terminal-nes-emulator画面描画は点字を使って文字出力コントローラは標準入力からfread() 経緯 2016年の2月にPHPで動くゲームボーイのエミュレータ、php-terminal-gameboy-emulator に衝撃を受けて、その実装の解説を勉強会やカンファレンスでトークしたりSoftware Design誌に書いたりしました。(*1) カンファレンスでのトークでは時間の都合もあって全体のごく一部しか話が出来ないのですが、Software Design誌では誌面をたっぷり頂いてCPU、メモリアクセス、画面表示とphp-terminal-gameboy-emulator のほぼ全域を解説出来たので満足し、その熱は落ち着いていました。 そんな中、9月に開催されたbuilderscon tokyo 201

    PHPで動くファミコンエミュレータを作った
  • WordPressのfunctions.phpに書いておくと捗ること - コムテブログ

    TL;DR WordPress の functions.php に書いておくと捗ることをまとめておきます。 固定ページ判別。body に固定ページのスラッグ名を追加 body に固定ページのスラッグ名を追加。トップページは home のクラス名がつく。固定ページなどは guide about などのスラッグ名を取得しクラス名が付与される。 function pagename_class($classes = ''){ if (is_page()) { $page = get_post();//get_page()は廃止されたので使わない $classes[] = $page->post_name;//スラッグ名取得 } return $classes; } add_filter('body_class', 'pagename_class');

    WordPressのfunctions.phpに書いておくと捗ること - コムテブログ
  • PHP コミュニティでブーメランを投げ合うのはやめよう - Frasco

    私は約7年間、PHP でプログラミングをしてきました。その間に、私が発見したもの。それはフレームワークとライブラリ(コンテンツ管理プラットフォーム周辺のエコシステムなど)、そして、PHP を選んだプログラマーたちの巨大コミュニティです。私と同じツールを使っているにせよ、いないにせよ、プログラマーたちの多くは、当の友人になりました。私が参加したカンファレンスでの基調講演の多くから判断するに、私たちはお互いに助け合い、学び、成長し、より良いソフトウェアを構築し、キャリアにおいて次のステップを踏み出すときには、一丸となってお互いをサポートしてきたと思います。そう信じているのは、私だけではないでしょう。 言語としての PHP は、「まっとう」なプログラマーたちに、皮肉を言われ、馬鹿にされ、過小評価され、批判され、嘲笑されて、最低の極みともいえるような評価を受けてきました。そのプログラマーたちは、

    PHP コミュニティでブーメランを投げ合うのはやめよう - Frasco
  • CakePHP2でModel->find()でjoinsを使ってみた

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    CakePHP2でModel->find()でjoinsを使ってみた
  • 安全なphp.ini設定

    あまり設定することがないのでメモ的に残しておきます。設定するのに必要な項目です。まあだいたいなところですけど、自己確認用ですから。。。 いろいろなところからいいとこ取りで設定してある物をご紹介いたします。 環境によって使い分けたほうがよさそうですね。 基的にあまり構うところ無いのですが、特にココは気をつけたいところだけ載せておきます。 php.iniの設定も一苦労です。 スポンサーリンク //Webアプリケーションで使用する文字エンコーディングを必ず指定。 default_charset = UTF-8 //すべてUTF-8で統一の場合 mbstring.language = Japanese output_handler = mbstring.internal_encoding = UTF-8 mbstring.http_input = pass mbstring.http_outpu

    安全なphp.ini設定
  • 【PHP】作成したメールフォームに脆弱性がないか、アドバイスもらえないでしょうか。

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

    【PHP】作成したメールフォームに脆弱性がないか、アドバイスもらえないでしょうか。
  • PHP: version_compare - 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

    PHP: version_compare - Manual
    yajamon
    yajamon 2016/07/29
    PHP使うの本当検索力ないと無駄なことする(無駄にクラス作った
  • PHPアプリケーションのデプロイにぴったりなDeployerを試す | さくらのナレッジ

    今や開発環境はローカルにあるのが一般的です。OSを合わせたい場合でもVMを使えば簡単に実現できます。問題はコードが書き終わった後のデプロイではないでしょうか。どのサーバにどのコードを反映し、どんなタスクを実行するのか、ライブラリの変更があるのかなどを適切に管理する必要があります。 Ruby/Ruby on Rails界隈ではCapistranoというソフトウェアが使われることが多いです。Capistrano自体は汎用的なデプロイツールですが、PHPであればやはりPHP製のツールの方が分かりやすいでしょう。そこで今回はDeployerというPHP製のデプロイツールを紹介します。 Deployer — Deployment Tool for PHP Deployerのセットアップ Deployerはとても簡単にセットアップできます。体をダウンロードして、パスの通ったところに配置するだけです。

    PHPアプリケーションのデプロイにぴったりなDeployerを試す | さくらのナレッジ
    yajamon
    yajamon 2016/04/26
    ザクっときた / “今や開発環境はローカルにあるのが一般的です”
  • インターフェイス命名規則いろいろ #PHP - Qiita

    PHPのinterfaceの命名規約ってどういうのがいいんだろう?」 フレームワークや他言語の命名規則をあつめてみた。(パターン名は勝手にでっち上げたものであり、実在の人物・団体・事件などとは一切関係ありません。 ) ○とか☓と書いたのは個人的な感想です。どれが優れている劣っているという主張ではありません。炎上しないでください><。 I-接頭辞パターン I をインターフェイス名の頭につけるパターン。それを実装するクラスは I を取り除いたインターフェイス名を引き継ぐ。.NETJavaで見かけます。

    インターフェイス命名規則いろいろ #PHP - Qiita
  • symfony 1のオートロードのワナ - ゆっくり*ゆっくり

    symfony 1ではproject, apps, modulesのそれぞれのディレクトリの中の"lib"というディレクトリにあるクラスはすべてオートロードの対象になります。apps, modulesに関しては現在実行中のアプリケーションとモジュールのlib以下のみが対象になります。ここまでは基です。 オートロードの内部の実装を軽く説明しておきましょう。frontendはアプリケーション名だと思ってください。 最初はプロジェクトのlib以下にあるファイルから.phpを再帰的に探します。.phpが見つかった場合、ファイルを読み込んで(file_get_contents)、class/interface定義を検索し、クラス名をキー、クラスファイルの絶対パスを値にして配列に格納します。この操作をすべての.phpファイルに適応させて、大きな連想配列を作成します。なお、プロジェクトのlibの中から

    symfony 1のオートロードのワナ - ゆっくり*ゆっくり
  • 勉強会を楽しむなら発表しよう!

    せっかく勉強会に参加するなら発表してみましょう!という話です。 Photo by Kiryu Tsukimiya 演台に立って、プロジェクタに資料を写しながら発表をする。 勉強会に良くある発表の風景ですね。あなたもこの登場人物になってみませんか? 発表のメリット 勉強会で発表するとこんな良いことがあります。 1. より深くテーマを学ぶことができる 発表するとなると、内容を考え、資料を作るでしょう。となると発表内容について、調べ、考え、まとめるわけです。この過程でより深く学ぶことができるわけです。特に初めての発表なら、失敗したくはないでしょうから(失敗しても良いんですけどね)、必死のぱっちでやるでしょう。明確な目的を持った学習は効果が高いのはあなたも経験済みだと思います。 2. 勉強会への予習ができる 1.のおまけですが、そうやって勉強会のテーマについて少しでも学習して行くと、他の方の発表も

    勉強会を楽しむなら発表しよう!
  • CakePHP Modelとの付き合い方(CakePHP Advent Calendar 2010 3日目)

    CakePHPのModelに悩む人が多いようなので、自分なりの付き合い方(考え方)をご紹介します。 CakePHP Advent Calendar 2010の3日目です。 前日の k1LoW さんのエントリ、参考になりますね。GETのフォームをdata[]でやるとURLがすんごいことになるので、ウチでは別途対応できるライブラリを作ったりしてます。 さて、3日目の今日は書きたいネタは幾つかあったのですが、「君の当たり前に僕らは感嘆させられるんだ」の精神に従って、自分なりのModelの使い方、考え方を書いてみます。 1. 適正なインターフェイスを用意して処理をカプセル化 まず基的な考え方。 Model(に限らずですが)では、処理単位でインターフェイス(メソッド)を用意して、実装はカプセル化しておきます。 こうすることによって、Modelを利用する側(Controllerや他のModel等)は

  • 「CakePHP 3.0」リリース、ORMを刷新 | OSDN Magazine

    PHP向けWebアプリケーションフレームワーク「CakePHP」の開発チームは3月22日、最新版となる「CakePHP 3.0」をリリースした。新しいORM(オブジェクト関係マッピング)の導入をはじめ、多数の機能が加わっている。 CakePHPはMVCアーキテクチャを採用するPHP向けのWebアプリケーションフレームワーク。データベースアクセス、キャッシュ、認証などの機能を統合しており、高速な開発ができるのが特徴。容易な設定、安全性などの特徴も備える。ライセンスはMIT License。 CakePHP 3.0は、2011年に公開されたバージョン2系からのメジャーアップグレードとなる。PHPはバージョン5.4.16以上が必須となり、mbstring、intlの両拡張モジュールも必要となる。 最大の特徴は新しいORM(オブジェクト関係マッピング)の導入。Modelを大きく変更し、Tavleク

    「CakePHP 3.0」リリース、ORMを刷新 | OSDN Magazine
    yajamon
    yajamon 2015/03/26
    cakephp 3.0 来てるじゃないですか
  • PHP7の現状

    (Last Updated On: 2018年8月13日)PHP7が今年の秋リリースされる予定です。まだまだ多くの変更が行われる予定ですが、現状を簡単にまとめてみたいと思います。代表的な物のみ取り上げています。 ご存知ない方の為に書いておきます。現在リリースされているPHPPHP5です。次のPHPPHP7になり、PHP6はリリースされません。PHP6をUnicodeをネイティブ文字列としてサポートするバージョンとして開発されましたが、文字エンコーディングチェックを内部で自動的に行おうとするなど、無駄が多く遅いため破棄されました。(文字エンコーディングのバリデーションは来アプリでするものです)このため、PHP6はスキップされ次のPHPPHP7になります。 追記:PHP7.0は既にリリースされています。概要はPHP 7.0の概要・新機能・互換性、詳しくはマイグレーションドキュメントをご

    PHP7の現状
  • CakePHP3.0への移行の準備メモ | X->A->O

    CakePHP2系の最新版を利用しながら、3系への以降を少しでもスムーズにさせるためのメモです。 実際には非常に多くの作業を伴うことが予想されますが、可能な部分だけでも対応しておきたいところです。 このエントリは随時更新中です。気づいた時&暇な時に追加・更新していきます。 PSR-4 に準拠した名前空間の導入 CakePHP3.0 から namespase が導入され、同時に PSR-4 準拠となります。それに関連してディレクトリ構造やクラス名、ファイル名が変更されます。 これに備えたアプリケーションコードの変更は2系では基的に不可能と思われますが、準備のために整理しておきます。 APIの廃止、変更、代替案 クラス、メソッド、変数の廃止、メソッド引数の扱いの変更、推奨されている代替案などをまとめていきます。 中には 2.x のかなり初期の段階で移行を促しているものなど、あえて書くまでもな

    yajamon
    yajamon 2015/01/30
    これは控えておかないと
  • CakePHP 3.0.0-RC1 がリリースされました – The Bakery, なんでもCakePHP!

    CakePHPコアチームはCakePHP 3.0.0の最初のリリース候補版が入手可能になったことをお知らせいたします。ベータリリース以降懸命に改善してきました。コミュニティの皆さんの助力にも感謝しています。 改善のための奔走により、ベータ3からいくらかAPIを変更しました。先のバージョンで多くの欠点が見つかったバリデーションのサブシステム関連で特に多くの変更があります。3.0.0-rc1での変更点の概要は以下のとおりです: バリデーションの改善 バリデーションプロセスは2つの段階に分かれています。最初の段階はユーザーが対面するタイプのバリデーションで、いつ、どこで実行するかという点を除けば先のリリース以降変更はありません。 先のバージョンでは、以下のように実行しました。 $article = $this->Articles->newEntity($this->request->data);

    yajamon
    yajamon 2015/01/21
    phpunit4 も使えるようになるらしいし、そろそろ触っていかんとなぁ
  • githubとgoogleを利用して世界征服の意図を調べる - Qiita

    php による世界制服の崩壊 少し前に、php のworld dominationが取り消されたらしい、という話をききました。 その時はなんとも思っていなかったのですが、ちょうどblameの話に良さそうだ、と思い立ったので、そのコードがいつ入ったのかを調べてみようと思います。 修正されたコミットの検索 git でコミットをなかったことにするといったら revert でしょ!ということで、とりあえず、php world domination revertあたりでぐぐります それっぽいのが見つかりました。 [PHP-INTERNALS] Huge breach of PHP policy regarding World Domination 嬉しい事に修正コミットへのリンクが貼られているのでとんでみます https://github.com/php/php-src/commit/a90170e

    githubとgoogleを利用して世界征服の意図を調べる - Qiita
  • PHP: PHP と HTML - Manual

    PHPHTML PHPHTML は深く関係しています。PHPHTML を生成し、HTML には PHP に 送信される情報が記述されています。 以下の FAQ を読む前に、どうやって 外部から来る変数を取得するかを読んでおくことは重要です。 このマニュアルにはこのトピックに関するよい例があります。 フォームから、もしくは URL から値を渡す場合にはどういった エンコード/デコードが必要なのですか? エンコードが重要になる場面はいくつかあります。 string $data という エンコードされていない文字列データを渡す場合について考えてみると、 HTML を通じて渡す場合: 文字列にはどのような値が含まれるか分からないので、 データは必ず htmlspecialchars を行い、 ダブルクオートで囲まなければなりません。 URL を通じて渡す場合: URL はいくつか

    PHP: PHP と HTML - Manual
    yajamon
    yajamon 2014/10/30
    基本を抑える
  • PHP: The Right Way

    ようこそ 時代遅れの情報がウェブ上にあふれている。そんな情報を見たPHP初心者は戸惑ってしまうだろう。そして、まずい手法やまずいコードが広まってしまう。 そんなのはもうやめよう。PHP: The Right Way は気軽に読めるクイックリファレンスだ。PHPの一般的なコーディング規約、 ウェブ上のよくできたチュートリアルへのリンク、そして現時点でのベストプラクティスだと執筆者が考えていることをまとめた。 大事なのは、 PHPを使うための正式なお作法など存在しない ってこと。 このサイトの狙いは、はじめて PHP を使うことになった開発者に、いろんなトピックを紹介すること。 経験豊富なプロの人にとっても、これまで深く考えることなく使ってきた内容について、新鮮な見方を伝えられるだろう。 このサイトは、決して「どのツールを使えばいいのか」を教えるものじゃない。 いくつかの選択肢を示して、それぞ