![SOLIDの原則ってどんなふうに使うの?](https://cdn-ak-scissors.b.st-hatena.com/image/square/95f0c591d25929f75706dff72ccb679963023c0b/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F99747affdcf5496c8b85faa68d697a25%2Fslide_0.jpg%3F9597871)
はじめに 私は、これまでいくつかのPJでPHPの開発をしたり、自分でも勉強がてらアプリを作ったりしてきました。 その中で、同じPJに参画していた方から教えていただいた技術や自分でこれは心得ておきたいと思った事をまとめてみました。 また、最初にこの記事を書いたのは2018年3月ですが、半年後、1年後、さらにその先はガラリと状況が変わっている可能性もあります。 その場合、できるだけ最新の情報に更新し続けたいです。 1. バージョン もし、これから新規でPHPで何かを作り始めるなら間違いなく7系を使った方がいいです。 5系に比べて言語としての処理速度も上がっていますし、新機能も増えています。 昔からある古いプロダクトの保守などで、どうしても5系を使い続けなければいけないPJもあると思いますが、 5系で一番新しい5.6ですら2018年内にセキュリティサポートが切れてしまうので、多少大変でも7系への
アーカイブ2024/04 (7) 2024/03 (4) 2024/01 (3) 2023/12 (1) 2023/11 (3) 2023/10 (1) 2023/09 (1) 2023/08 (2) 2023/05 (4) 2023/04 (4) 2023/03 (4) 2023/02 (2) 2023/01 (1) 2022/12 (1) 2022/11 (4) 2022/10 (3) 2022/09 (2) 2022/08 (4) 2022/07 (5) 2022/06 (4) 2022/05 (9) 2022/04 (8) 2022/03 (10) 2022/02 (21) 2022/01 (8) 2021/12 (11) 2021/11 (1) 2021/10 (4) 2021/09 (2) 2021/08 (1) 2021/07 (2) 2021/06 (5) 2021/05
追記 より良い実装をコメントで頂きましたので、あわせてご確認ください。 PHPでCSV、この手の記事は古いのから新しいのまで山のように見つかるけど、なかなかうまくいかなくて嵌ったので、ある程度形になったソースコードをメモしておく。 // setlocaleをまずは設定 setlocale(LC_ALL, 'ja_JP.UTF-8'); // フレームワークによって違うので省略 $filePath = 'CSVファイルのパスを取得するための変数'; // 読み込んだSJISのデータをUTF-8に変換して保存 file_put_contents($filePath, mb_convert_encoding(file_get_contents($filePath), 'UTF-8', 'SJIS')); // UTF-8に変換したデータをSplFileObjectでCSVとして読み込み $fil
DockerでapacheとMemcachedを起動してPHP5.4から接続してみる はい。前回からPHPのバージョンが下がっただけです。 ですがこういったいまさらバージョンあげらんねーーよ、なシステムのお守りをせねばならない立場の方も多いのではないでしょうか。 Dockerを使えばレガシーなミドルウェアをコンテナに封じ込めつつ、ホスト側は地道にアップデートし守りを固めることも可能です。というかそういったしがらみを抱えたシステムのセキュリティ向上のための唯一解じゃないかと思っています。現実的に考えて。 Compose 内容は前回と変わりません。apache-phpとmemcachedコンテナを立ち上げます。 docker-compose まずはCompseの設定
Software WebSecurity セキュリティに関するヘッダを出力するPHPスクリプトの叩き台※当サイトにはプロモーションが含まれています。 はじめにセキュリティ関連のHTTPレスポンスヘッダを毎回調べて書くのが面倒なので、ここにまとめておくことにします。 PHPで何か書く時は レスポンスヘッダを出力するあたりに以下を書いておき、制限がキツいようだったら少しずつ緩めていくという使い方をイメージしています。 <?php // セッションクッキーに httponly 属性を設定 ini_set('session.cookie_httponly', 1); // セッションクッキーに secure 属性を設定 ini_set('session.cookie_secure', 1); session_start(); // JavaScriptの実行を許可する対象を 同一オリジンと cod
■解決法 解決方法として、結局はエンコード周りをあさればよいみたいです。 CSVを読込む「fgetcsv」の行の前に setlocale(LC_ALL, 'ja_JP'); と記述することで、直る場合もあるみたいです! それでも駄目だったら…専用に関数を作成されたPHPプロ達がいるみたいなので、その方々にあやかりましょう(*^ω^*) 参考サイト文字化け対処方法について – PHPプロ!Q&A掲示板 yossyさんの記事のソースです。 <?php // PHPプロ!Q&A掲示板 yossyさん作成 [http://www.phppro.jp/qa/371#2255] function fgetcsv_reg (&$handle, $length = null, $d = ',', $e = '"') { $d = preg_quote($d); $e = preg_quote($e); $
この規約セクションでは、共有されるPHPコードにおいて高い技術レベルでの連携を確保するために必要とされる標準的なコーディング要素を考慮したうえで構成されています。 文書内記載されている "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY" 及び "OPTIONAL" は、RFC 2119で説明される趣旨で解釈してください。 1. 概要 PHPコードは「<?php」及び 「<?=」タグを使用しなければなりません。 文字コードはUTF-8(BOM無し)を使用しなければなりません。 シンボル(クラス、関数、定数など)を宣言するためのファイルと、副作用のある処理(出力の生成、ini設定の変更など)を行うためのファイルは、分けるべきです。 名前空間、クラスに
このガイドはPSR-1に準拠し、標準的なコーディング規約のためのスタイルガイドです。 このガイドの目的は、複数メンバーがコードを読む際の認識のずれを抑えることです。 これはPHPコードをどのような書式にするかについて、ルールや期待値を共有することで実現します。 スタイルルールは、様々なプロジェクトの共通内容から生み出されています。 様々な作者が複数プロジェクトを横断して協力しあうことで、全てのプロジェクトで有用なガイドライン策定の助けとなります。 従って、このガイド本来の利点は、ルール自体にはなくルールを共有することにあります。 文書内記載されている "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY" 及び "OPTIONAL" は、RFC 21
休日個人開発で学ぶテストコード! 画像に“集中線”を合成するツールを作ってみよう プライベートでも何か作りたい! そんなときの「今日からはじめる休日個人開発」シリーズ、第二弾はテストコードを書きながら簡単なMVCモデルの画像加工ツールを作ってみましょう。好きな写真に集中線を合成できます。 皆さん、プライベートで何か開発していますか? 「何か作りたい」という気持ちはあるものの、いまひとつ何から始めたらいいのか分からず、動けないままの人も多いと思います。 そんな皆さんのために、「仕事以外にも休日に個人で気軽に何かを作ってみよう!」という企画の第二弾です。今回は、第一弾で用意した開発環境を使って、画像を加工するツールを実際に作っていきます。 せっかくですので、ただ作るだけではなく、テストコードも一緒に書いてみましょう。最近は、CI(継続的インテグレーション)やCD(継続的デリバリー)も一般的にな
PHP で CSV 文字列が必要になったんですが、 str_getcsv はあるものの、str_putcsv なる関数がない ネーミングがおかしい気がしますが str2csv ? 仕方なく自作することに 因みに implode( ',', $array); でいいじゃんって人は帰ってください。 いいんじゃないですか?それで で、話を戻すと、fputcsv がすぐに思い浮かぶ そして、バッファも確かあったなと 出力バッファがまず思い浮かんだけど、用途として間違っている 出力バッファ関数郡は魅力的だけど 出力バッファを使ってしまうと この処理をする前に何か出力されていたら、相当面倒なことになる。 出力バッファなんて使ったら何してんのって話だ。 てことで、しょうがなく、バッファで遠回りして csv 生成 一から、csv 生成関数作ってもいいような気もするけど、その辺は時短ということで <?php
「Xdebug」は15年間愛されてきた、PHPの定番デバッグツール。それでもまだ使ったことがないPHP開発者のために基本的な使い方を紹介します。 Xdebugの登場から15年が経ちました。ここでXdebugの目的や機能をあらためて紹介します。 XdebugはPHPのエクステンション(コンパイルしてPHP環境にインストールするもの)で、デバッグの機能を提供します。 スタックの追跡。エラーが発生するまでの経過を詳細に表示する。関数に渡されたパラメーターも表示され、エラーの原因を探しやすくする var_dumpを整形して出力する。VarDumper同様、色分けした情報と構造化ビューを生成。スーパーグローバルのダンパーが可能 コードのボトルネックを特定するプロファイラー。外部のツールでパフォーマンスのグラフをビジュアライズでき、Blackfireのようなグラフが書ける 実行中のコードや、IDE、ブ
Docker Composeで手軽に開発環境を構築(PHP+MySQL+Elasticsearch+Memcached)で紹介したファイル群をリファクタリングしました。記事にする前にリファクタリングしろよっていう話ですが・・・。 DockerやDocker Composeについての基本的な記事は、上記をご覧いただければ幸いです。 今回作成したファイル群は、こちらに置いてあります。 docker-composeが入っていれば、 git clone https://github.com/acro5piano/docker-compose-dev-env.git cd docker-compose-dev-env docker-compose up
はじめに 新規でPHP開発をするにあたり、 どうせならDockerで開発したい でも、やっぱりファイルはホスト側で書いて同期させたい と思い構築手順をまとめました。 ザクザク行けば15分程度でApacheを起動してPHPを動かせると思います。 ※Docker自体のインストールはDockerをMacにインストールするをご覧ください。 また、@y_tsubukuが開発するyaritori - メール共有システムも、良ければご覧ください 追記) エンジニアの募集もはじめました!! PHP7.0 + Apacheを起動する docker run -d -p 80:80 --name php70-apache php:7.0-apache でイメージからコンテナを立ち上げる。(ローカルにimageがない場合はDocker Hubから取得してくれる。) 今回はNAMESにphp70-apacheと指定
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く