タグ

phpに関するrysterのブックマーク (560)

  • PhpStorm 2016.3 入門動画を作りました - なんたらノート第三期ベータ

    PhpStorm 2016.3 リリース 2016/11/24、な感じのネタです。 PhpStorm 2016.3 is now released! | PhpStorm Blog 先日、株式会社ロックオン 様の社内勉強会に招待されて、PhpStorm のワザをいろいろ共有してきました。EC-CUBE3のソースを開いてインスペクションかけては「あ、ここ型検査効いてませんね...」「依存はmixed型で取ってくるんじゃなくて型を持ったフィールドに注入しないと...」とかひどいことやりました申し訳。 そのとき簡単な PHP のプログラムを通しで作るデモを雑に作っていったんですが、これ実はいい出来なんじゃないかということで、ちゃんと仕上げて公開したいなと思い... というわけで、約40分の PhpStorm 初心者向け (PHP 初心者とは言っていない) ライブコーディングですどうぞ。 Ph

    PhpStorm 2016.3 入門動画を作りました - なんたらノート第三期ベータ
  • PHPで作る非同期処理

    PHP Conference 関西 2016 で公演したスライドです 来シングルスレッドの処理系であるPHPですが、非同期処理が絶対に実現できないかというとそういうわけではありません。 素のPHPでは確かに難しいですが、各種エクステンションやライブラリの力を借りることで、PHPの文法で非同期処理を書くことができます! もちろん、はじめから非同期処理をサポートしている処理系ないし言語でかけばいいというのは最ものことなのですが、あえてPHPで書いてしまう、それがPHPerです!

    PHPで作る非同期処理
  • PHPで土日祝の一覧を出す方法 | Web活メモ帳

    PHPで土日祝の一覧を設定するプログラムを作成したので自分用にメモです。 最後にコードを載せています。ご参考にどうぞ。 祝日取得用class こちらを参考にいたしました。 祝日を自動判定するDateTime拡張クラス http://qiita.com/chiyoyo/items/539dc2840a1b70a8e2c3 以下のようにすると、祝日かどうか判定してくれます。 $holiday_datetime = new HolidayDateTime("2016-01-02"); $holiday_datetime->holiday(); 実装コード コピペだけで使用できるようになっています。 不明点あればコメントで質問ください。 $weekday = array( "日", "月", "火", "水", "木", "金", "土" ); // 2016年から3年分取得 for ($now_

    ryster
    ryster 2016/05/10
  • 祝日を自動判定するDateTime拡張クラス - Qiita

    更新履歴 2015-09-28 タイポ修正 2016-04-27 バグ修正 2019-02-06 2019年以降の祝日を反映 2019-06-11 2020年以降の天皇誕生日の指定が間違っていたので修正 これは何? プライベートな環境(インターネットへの接続不可でGoogle等の外部サービスが使えない環境)のシステムで、日の祝日を取得したいケースが出てきました。 誰か作ってるだろと思いググってみても、探し方が悪いのか使えそうなクラスが見当たりませんでした。 日付をDBや設定ファイルなどに積むのもいいけど、毎年メンテナンスとか数年後の忘れたころに祝日にならないとか言われるのもイヤだったので作っちゃいました。 探してみた近しいライブラリ PEAR::Date_Holidays_Japan 2015年くらいから更新されていないようです japanese-holiday 更新は続いていますが、毎

    祝日を自動判定するDateTime拡張クラス - Qiita
    ryster
    ryster 2016/05/10
  • PHP 5.6と7の新機能を使った画期的バリデータの実装 - Qiita

    以前、private/protectedなプロパティを外部から読み込み可能にするを書いたとき、記事のコメントにて「コレクション(配列)内の要素の型を検証したいよー」「でもそうすると全要素を検証しなくちゃいけないから実行時のパフォーマンスの問題があるよね」って話をしました。 気付いてしまった PHP: 関数の引数 - Manualを読んでた私は気付いてしまったのです。PHP 5.6で実装された機能を巧みに利用すればバリデータが実装可能なことに。 ……そうです。可変長引数です。 PHPの可変長引数とは PHP 5.6で追加された可変長引数は、以前の文法に...を追加することで0個以上の値をまとめて受け取れるようにしたものです。 f("a") // => // string(1) "a" // array(0) { // } f("a", "b") // => // string(1) "a"

    PHP 5.6と7の新機能を使った画期的バリデータの実装 - Qiita
    ryster
    ryster 2016/02/29
  • PHP でバイナリ変換プログラミング

    Tier Ⅳ Tech Meetup #2 - 自動運転を作るのはCloudシステムの集合体?? 活用技術を大解剖 -Tier_IV

    PHP でバイナリ変換プログラミング
    ryster
    ryster 2016/01/28
  • PHPでもジェネレータを使って、非同期処理を同期処理の文法で書ける - Qiita

    こんにちは皆さん。 PHPは基的に同期処理の言語構造を指定ます。 非同期処理の構造を入れるには、Reactのような別機構を導入する必要があります。 で、非同期処理を入れたらやりたくなるのが、非同期処理を同期処理っぽく書くことです。 以前に、JavaScriptのジェネレータを使うことで、非同期処理を同期処理っぽく書くことができると紹介しました。 で、PHPはどうかというと、既にジェネレータがPHP5.5で追加済みです。 そうです、PHPでも非同期処理を同期処理の文法で書くことができます。 ...まあ、PHPで非同期処理を書くこと自体が、かなり冒険的なんですがね..。

    PHPでもジェネレータを使って、非同期処理を同期処理の文法で書ける - Qiita
    ryster
    ryster 2016/01/19
  • スレッド処理は慎重に – PHPでのスレッド処理 : 前編 | POSTD

    私が覚えている限り、非常に重い(または非同期の)タスク処理に関して、PHPは常に厳しい評価をされていました。これまではずっと、長いタスクを並列化したければ pcntl_fork を通してフォークするという方法を取らなければいけなかったので、タスクの結果を適切に処理することができませんでした。 そこで私たちは、キューイング(どちらかと言えばタスクを遅くするだけ)やReactPHP、または他の言語を一緒に使うといった、より複雑なソリューションへと向かっていきましたが、PHPでもスレッド処理は可能なのです。そしてより重要なのは、 その方法はあなたが思っているよりもはるかに簡単だということです。 この記事では、 pthreads 拡張(POSIX Threadsの略)について説明します。2012年ごろから広く使われていますが、多くの人がその存在を忘れているか、使うのが苦痛だと考えると思います。その

    スレッド処理は慎重に – PHPでのスレッド処理 : 前編 | POSTD
    ryster
    ryster 2015/12/23
  • ほぼ全てのインジェクション攻撃を無効化/防止する入力バリデーション 〜 ただし出力対策も必須です 〜

    (Last Updated On: 2019年2月18日)入力バリデーションはセキュリティ対策として最も重要なセキュリティ対策です。なぜセキュリティ対策であるのか?を理解していない方も見かけますが「ほぼ全てのインジェクション攻撃を無効化/防止する入力バリデーション」の効果と拡張方法を見れば解るのではないでしょうか? ソフトウェア開発者が知っておくべきセキュリティの定義/標準/ガイドで紹介しているセキュリティガイドラインでは入力バリデーションが最も重要なセキュリティ対策であるとしています。 厳格な入力バリデーションを行うと、開発者が意識しなくても、非常に多くの脆弱性を利用した攻撃を防止できます。今回は比較的緩い入力バリデーション関数でも、ほとんどのインジェクション攻撃を防止できることを紹介します。 重要:セキュア/防御的プログラミングでは入力と出力のセキュリティ対策は”独立”した対策です。ど

    ほぼ全てのインジェクション攻撃を無効化/防止する入力バリデーション 〜 ただし出力対策も必須です 〜
    ryster
    ryster 2015/06/15
  • AWS SDK for PHP のパフォーマンスを改善するたった3つのこと - Qiita

    いずれも、ほとんどコードに手を加えることなくできる改善なので、SDKを利用しているなら、すぐにでもやるべきだ。 もし、これから開発をはじめようとしているなら、前提としてまず、 PHP5.6 もしくは PHP5.5 を使うことをオススメする。 もちろん、PHPのバージョン関係なく以下は有用なものです。 1. Composer の classmap autoloader を使う

    AWS SDK for PHP のパフォーマンスを改善するたった3つのこと - Qiita
    ryster
    ryster 2015/02/25
  • PHP FANN (Fast Artificial Neural Network) を使って儲けてみる - 忍び歩く男 - SLYWALKER

    データ解析を勉強するにあたって、何かモチベーションになるものはないかと思っていました。そんなとき、「儲かったらいいんじゃね?」との考えにいたりました。 そこでお題にえらんだものが「競馬予想」です。とんでもねーなと思っていたところ、データ解析のお題としては「金融」とならんでベタのお題ということが判明。入力となるデータと答えの値がはっきりしているので、お題として適切なんだそうです。 今回は、かれこれ20年前に大学でかじったニューラルネットワークを使ってのディープラーニング(かっこいい響き)で予測してみました。 前置き ニューラルネットワークに詳しくありません。学生のとき、まじめに勉強していればよかったと後悔してる状態です。 根っからのPHPerなのでPHPを使います。PHPにはPHP-FANNというのがPECLにあるのでそれを使います。 PHP: FANN - Manual 概要はこのスライド

    PHP FANN (Fast Artificial Neural Network) を使って儲けてみる - 忍び歩く男 - SLYWALKER
  • util.php - The PHP programmer's best friend - UtilityPHP

    util.php (1.1.0) Debugging - var_dump Arrays & Objects - array_first - array_first_key - array_flatten - array_get - array_last - array_last_key - array_map_deep - array_pluck - array_search_deep - array_clean URLs - add_query_arg - get_current_url - http_build_url - is_https - remove_query_arg - slugify Strings - htmlentities - htmlspecialchars - linkify - match_string - random_string - number_to

    util.php - The PHP programmer's best friend - UtilityPHP
    ryster
    ryster 2015/02/01
  • [PHP] Google Analytics のアクセス偽装方法を実装してみる [FuelPHP] - NO AC.Milan, NO LIFE

    2015-01-21 [PHP] Google Analytics のアクセス偽装方法を実装してみる [FuelPHP] PHP FuelPHP Google Analytics シェア!Facebookでシェア ツイート!Twitterでシェア ブックマーク!はてなブックマーク なんか、あるサイトのアクセス解析をしているのだが、Google Analytics の解析と、実サーバのアクセスログの値が、10倍ぐらい違う。なにこれ!? って感じだけど、人気サイトであると思わせたいのかな~と。まあ、良いか。 FavoritesFollows (欧州サッカーNEWSををTwitterにつぶやくBot)で、どうしてもクリック解析がしたくて、短縮URLシステムまで構築し、Google Analytics の軽いハックまでした経験から、Google Analytics のアクセス偽装方法を実装してみる

    [PHP] Google Analytics のアクセス偽装方法を実装してみる [FuelPHP] - NO AC.Milan, NO LIFE
    ryster
    ryster 2015/01/23
  • 【PHPで学ぶデザインパターン入門】第1回 Strategyパターン | 株式会社LIG(リグ)|DX支援・システム開発・Web制作

    こんにちは、エンジニアの王です。 今回はデザインパターンと、デザインパターンの中の「Strategy」について紹介したいと思います。 デザインパターンとは? 端的にいうと、「よくある問題へのよくある解決策」です。 ここでは、あくまでもソフトウェア設計の場合に限定しているのですが、さまざまなコンテキストで活かせる概念です。 「今までの経験上、この手の問題なら、この方法(パターン)でやればうまくいくよ!」という経験則は誰にでもあると思います。それがゲームの場合なら「攻略法」、料理の場合なら「レシピ」、語学の場合なら「定型文」だったりします。 ソフトウェア設計の場合、特にオブジェクト指向プログラミングにおいて言うなら、「デザインパターン」とは、過去のソフトウェア設計者が失敗に失敗を重ね、試行錯誤の中から導き出した再利用しやすいノウハウの集大成のようなものです。 そう、要するに、柔軟性、拡張性、再

    【PHPで学ぶデザインパターン入門】第1回 Strategyパターン | 株式会社LIG(リグ)|DX支援・システム開発・Web制作
  • packagist.orgのミラーサーバを立ててcomposer updateを18倍速くする #packagist - Qiita

    現状報告はこちら packagist.JPの現状について(2015年12月): Architect Note 以下原文 PHPのモダンな依存関係解決ツールであるcomposerですが、動作が遅いですよね。 私も常日頃から遅さを実感しており、何とかしたいと思っていました。 つい先日、GCを切るというハックによってだいぶ速くなりましたが、それでもpackagist.orgからのダウンロード部分は変わらず遅いままです。 Composer を倍速にした、たった 1 行のコード - Shin x blog 例えば、symfony/symfonyのインストールを考えてみます。 # ベンチマーク用の環境準備 $ mkdir composer-bench $ cd composer-bench $ composer require 'symfony/symfony:*' # ベンチマークの公平性のためメタ

    packagist.orgのミラーサーバを立ててcomposer updateを18倍速くする #packagist - Qiita
  • Composer を倍速にした、たった 1 行のコード

    まだ 12 月早々ですが、PHP ユーザに素敵なクリスマスプレゼントが届きました。 いまや使うのが当たり前となった Composer ですが、複雑な依存解決に実行時間がかかるのがネックでした。 これは日国内だけでなく、海外のユーザも同じで、皆がしょうがないと思いつつも、小さな不満を持ちながら使っていました。 そんな、ある�日、わずか 1 行のコードが追加されたことで、実行時間が、わずか半分になるという現象が起こりました。 Composer を倍速にするには? composer self-update を実行して、最新版にするだけです。 $ composer self-update 実際の効果 このコードの効果を見てみましょう。composer コマンドの --profile オプションを使って、実行時間と使用メモリ量を出力します。 $ composer update --dry-run

    ryster
    ryster 2014/12/04
  • ま鉄系 » 月100万リクエストを支えるサーバの裏側を公開します

    福田です。今日は、月100万リクエストを超えるアクセスを支えるこのVPSのシステム構成とかを公開しようと思います。その気になれば3コア、2GBしかないメモリでも余裕でさばけるっていうわけです。 OSは何使ってるの?OSは、日で業務に使用しているところは少ないUbuntuのLTS(バージョンは書きません)を利用しています。 Ubuntuを使う理由としては、HHVMとかを入れやすいところにあります。その他のソフトウェアもCentOSとかRHELより豊富だったりします。あとは、慣れっていうのもあります。サーバで使用しているソフトウェアは?100万リクエストにさくさく応えるために、Nginxを利用しています。表面上はフルスロットルってなっていますが、これはNginxのソースコードをいろいろ書き換えたりして運用しているためにあえて変えてある仕様となっています。Nginxでも、何重にもキャッシュをか

  • PHPでCSP(Content Security Policy)を導入してXSS対策を強化してみよう — A Day in Serenity (Reloaded) — PHP, CodeIgniter, FuelPHP, Linux or something

    PHPで簡単にCSPを導入するためのライブラリを作成してみました。 kenjis/csp https://github.com/kenjis/php-csp-nonce-source 既存サイトへの影響を最小限にしてCSPが導入できることを目的としています。 基的にCSP nonce-sourceを使い、nonceのないscriptタグは実行しないようにすることでXSS対策を強化します。 このライブラリの仕様としては、CSP nonce-sourceに対応していると思われる指定ブラウザに対してのみCSPヘッダを出力します。現状、ChromeとFirefoxのみが指定されています。 なお、CSP nonce-sourceに対応したChromeのバージョンがわからないので、確認できたバージョン37以上としてます。 CSPについて CSPについてよく知らない方は以下のスライドなどをご覧下さい。

    PHPでCSP(Content Security Policy)を導入してXSS対策を強化してみよう — A Day in Serenity (Reloaded) — PHP, CodeIgniter, FuelPHP, Linux or something
    ryster
    ryster 2014/10/30
  • DIとサービスロケータの違い

    DIとサービスロケータは、いずれもオブジェクトの構築と依存の解決という仕事を切り出すためのパターンです。ところで、この2つのパターンの違いを明確に説明できるでしょうか? Pimpleでシンプルに正しくDIを理解する のコードは以下のようになっていました。 <?php require_once '../vendor/pimple/pimple/lib/Pimple.php'; // インフラ interface MailerInterface { public function send($body); } class SendmailMailer implements MailerInterface { public function send($body) { } } // ドメイン class NewsletterTransfer { protected $mailer; public

    DIとサービスロケータの違い
    ryster
    ryster 2014/10/26
  • 安全なPHPアプリケーションの作り方2014

    SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのかHiroshi Tokumaru

    安全なPHPアプリケーションの作り方2014