- 1. 果物を選んで下さい。
- 1.0.1. Twigで拡張子が2つある理由
- 1.0.2. セッション有効期限の伸ばし方
- 1.0.3. Laravelで日付をYYYY年MM月DD日 (曜日) hh: mmと表示させる
- 1.0.4. ファサードの内部における動作を簡単にまとめる【Laravel】
- 1.0.5. [AWS SDK for PHP]署名付きPOSTを使い、直接クライアント側からAWS S3にファイルアップロード(PostObjectV4インスタンスを使用)
- 1.0.6. PHP7.4のpreloadいれたらLaravelは早くなるのだろうかと思って検証した
- 1.0.7. herokuデプロイで10分であなたのアプリを世界に公開する手順【Laravel5.8】
- 1.0.8. Moodle 3.7 マニュアル – PHP をソースからコンパイルする
- 1.0.9. cakephp ワンタイムURL作成をメール送信
- 1.0.10. 名前空間(namespace)の使い方
- 1.0.11. wordpressの投稿日と最終更新日の違い
- 1.0.12. PHPコーディング規約について知る
- 1.0.13. public staticとは?
- 1.0.14. phpmigでマイグレーションを行う
【 Laravel 】「Laravel DB Designer」で設計から実装まで「ER図←→Migration」相互変換!” 「使い方・仕様 」について解説” vol3
##今回は” Laravel DB Designer “の「 使い方・仕様 」について書きました(vol3)
『Laravelを使う人を幸せにしたいという思いから作った』
[https://laraveldb.com](https://venezia-works.com/sql/index.php)
※英語圏対応済み##主機能
– **ER図作成 (対応している”型”はページ下部に表記)**
– **ER図作成 → Migrationファイルを生成**
– **ER図作成 → チェック用クエリービルダーを自動生成**
– **Migrationファイル → ER図を生成(リバース)**##テーブル名
####テーブル名の頭に”m_”を付けた場合(Master:都道府県のように最初
php.iniの場所・パスを調べる方法
php.iniを変更したいけど、場所がわからない時、ありますよね。
そんな時はこれ↓“`common-lisp
$ php -i | grep php.ini
Configuration File (php.ini) Path => /Applications/MAMP/bin/php/php7.1.31/conf
Loaded Configuration File => /Applications/MAMP/bin/php/php7.1.31/conf/php.ini
“`###### 参考
https://qiita.com/tmsanrinsha/items/2fda05db29b62090e3de
配列の要素をフィルタリング(array_filter, array_reduce)
# 配列の要素をフィルタリングする(array_filter, array_reduce)
次のような連想配列から`value`が偶数の要素のみを取り出します。“`php:index.php
$array = [
[ ‘number’ => 1 ],
[ ‘number’ => 2 ],
[ ‘number’ => 3 ],
[ ‘number’ => 4 ],
[ ‘number’ => 5 ],
[ ‘number’ => 6 ],
[ ‘number’ => 7 ],
];
“`こちらを一旦`var_dump()`しておきます。
“`php:index.php
array(7) {
[0]=>
array(1) {
[“number”]=>
int(1)
}
[1]=>
array(1) {
[“number”]=>
int(2)
}
[2]=>
array(1) {
[“number”]=>
int(3)
}
[
PHPがメインの経験者が、Pythonを始めて5日目の話(selenium)PHP vs Python
#はじめに
今回はseleniumを使用してChromeブラウザをコントロールしてWEBのサービスに保存されているファイルをダウンロードするのが目的です。もう一点の重要な目的はPHPとPythonで同じダウンロードを行い、結果の比較をしたいと思います。ダウンロードはWEBメールの添付ファイルが最初の目的でしたが、Slack や Facebook Cybozu 等、現在はPHPのコードで大体可能です。この話を聞いた某編集者がハッキングだと言われましたが、普通に自分でログインしてダウンロードするのと基本的に変わりませんので、堂々とやって良い処理です。以下、PHPだと selenium-webdriverを利用する事になる訳で、今になりPythonの場合と比較して複雑に感じます。PHPで動かす場合には次の記事を参考にさせていただきました。この記事にあるように準備が色々とあります。「[seleniumを使ってPHPでChromeの自動操作をする](https://qiita.com/Rasukarusan/items/0ca204d5b0f0fb876252)」その準備を終えて、seleniu
PHPでプログラム全体の設定に使う変数の保持の仕方
PHPでちょっとしたアプリを作ったりちょっとしたフレームワークを作ったりするとき、共通の全体設定をどのように書くかという悩みがある。
頭の中を整理するためにパターン分けしてみる。説明は独断と偏見に基づいている、かもしれない。# 定数
定数には`define`と`const`がある。
“`php
Laravelでクロージャを使った自作バリデーションの作成
Laravelのバリデーションでチェックボックスの特定の組み合わせを不可にするために、
自作バリデーションを作成してみました。
自作バリデーションはRulesを作る方法がありますが、
調べた所、バリデーションでもクロージャが使えるようでした。簡単なサンプルを作ってみました。
まずフォームを作ります。“`
果物を選んで下さい。
@if ($errors->any())
@foreach ($errors->all() as $error)
- {{ $error }}
@endforeach
@endif
セッション有効期限の伸ばし方
#セッション有効期限の伸ばし方
自分の学習用ログ
セッションの有効期限を30日間にする場合
“`php:
//1、セッションファイルの置き場を変更する
session_save_path(“var/tmp”);// 2、ガーベージコレクションが削除するセッションの有効期限を設定
ini_set(‘session.gc_maxlifetime’,60*60*24*30);// 3、ブラウザを閉じても削除されないようにクッキー自体の有効期限を伸ばす
ini_set(‘session.cookie_lifetime’,60*60*24*30);// 4、セッションを使う
session_start();// 現在のセッションIDを新しく生成したものと置き換える
session_regenerate_id();
“`
Laravelで日付をYYYY年MM月DD日 (曜日) hh: mmと表示させる
日付と時間だけだと簡単ですが、間に曜日を挟んだ場合の情報が少なくて面倒だったので、メモ
LaravelにCarbonのv2以降をインストールすれば以下のように1行でかけます。
今回は参考にdirectiveを使ってますが、viewHelperとかの方がいいかも。“`php:AppServiceProvider.php
isoFormat(‘YYYY年MM月DD日 (ddd) LT ‘); ?>”;
ファサードの内部における動作を簡単にまとめる【Laravel】
## 概要
Laravelの代表的な機能としてファサードがある。これを使うと、staticなメソッドを呼ぶのと同じ要領で、どこからでも簡単にフレームワークの機能を呼び出すことができる。
“`php
use Illuminate\Support\Facades\Cache;Route::get(‘/cache’, function () {
return Cache::get(‘key’);
});
“`下の例のように、useで名前空間を指定せずとも、グローバル名前空間でアクセスするように書くことも可能。(ちなみにこれが可能なのは`config/app.php`の`aliases`に記述されている対応関係を`class_alias`関数によって結びつけているから。要はエイリアス(別名)をつけて省略的に書けるようにしていると思っておけば良いと思う。たぶん。)
“`php
Route::get(‘/config’, function () {
return \Config::get(‘key’);
});
“`これを一見すると、`Illuminate
[AWS SDK for PHP]署名付きPOSTを使い、直接クライアント側からAWS S3にファイルアップロード(PostObjectV4インスタンスを使用)
以下の流れで実装しました。
– [PostObjectV4](https://docs.aws.amazon.com/ja_jp/sdk-for-php/v3/developer-guide/s3-presigned-post.html) のインスタンスを使い、署名付きPOSTに必要な情報を発行
– Vue.jsで、アプリケーションサーバを介さず、クライアント側から直接S3にファイルをアップロード画面はこんな感じで、簡単にアップロード画面を作ってます。
![スクリーンショット 2019-11-18 23.51.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/247004/5ff21d2a-b6bf-915c-2e07-0c8b3aef33d7.png)## 準備
### AWS
S3でバケットを作成してください。
※IAMの設定は省略します### S3 CORSの設定
CORSを設定しておかなければなりません。“`
PHP7.4のpreloadいれたらLaravelは早くなるのだろうかと思って検証した
皆さんこんにちは
PHP7.4でpreloadが来るっていうので、ワクテカしているわけですが、実際どれくらい早くなるのかしらって思いまして、ちょうど色々検証していたので、Laravelでも軽くやっちゃおうぜって思ったので、やってみます。
あと4日ですね!!
# 三行で
– preloadが来るよ
– preloadで読み込み済みの状態を作れるよ
– Laravelに導入すると、結構早くなるよ# Preload
PHP7.4でopcacheにpreloadという機能が入ります。これの概要は
– opcacheの設定にpreloadを実行するヘルパーファイルを指定できる
– webサーバを起動するとopcacheがヘルパーファイルを実行する
– ヘルパーファイル内でキャッシュ化したものは、通常のアクセスにおいて、**すでに読み込まれたものとしてみなされる**そう、読み込み済みですよ!
簡単に読み込み済みの効果を見るために、以下のような例を考えてみましょう。## preload利用の例
まずは、こんなDockerfileで、動かせるコンテナを作ってみます。
“`
herokuデプロイで10分であなたのアプリを世界に公開する手順【Laravel5.8】
今回はherokuを使った、Laravelプロジェクトを世界に手っ取り早く公開する手順をご紹介します。
実は今回僕も`初の公開作業をしながら同時にこのqiitaを書いている`ので、これが公開されているということは動作は保証されます笑
>herokuとはPaaS(Platform as a Service)と呼ばれるサービスで、アプリケーションを実行するためのプラットフォームです。
>もう少しわかりやすく説明すると、サーバやOS、データベースなどの「プラットフォーム」と呼ばれる部分を、インターネット越しに使えるようにしてくれるサービスの一つです。
>レンタルサーバーと似ていると思うかもしれませんが、レンタルサーバーとPaaSは「環境を貸してくれる」という意味では一緒なので、ほぼ同じと考えても問題はありません
[herokuとは?初心者でも5分で分かる基本や特徴をまるっと紹介](https://www.sejuku.net/blog/7858)
大まかな流れか以下の通りです。
*herokuに登録
↓
heroku CLIダウンロード
↓
herokuでアプリ作成
↓
Pos
Moodle 3.7 マニュアル – PHP をソースからコンパイルする
[原文](https://docs.moodle.org/37/en/Compiling_PHP_from_source)
# PHP をソースからコンパイルする
このページは、Ubuntu あるいは Debian ベースのディストリビューション上で PHP をソースからビルドする方法を示します。その他の Unix や Linux のシステム上で PHP をコンパイルする基礎としても使えることは、疑いがないでしょう。
It is possible that you may need to do this because the latest versions of Moodle require reasonably new versions of PHP which may not be supported by the packages in your version of PHP – especially “long term support” versions.
This discussion was based on Ubuntu 10.04 which (at the
cakephp ワンタイムURL作成をメール送信
## ワンタイムURL
> 一度あるいは、限られた時間あるいは回数しかGETリクエストを受け付けないメカニズムである。 目的は、アクセス制限されたリソースに対して未承認アクセスすることをより困難にすることにある。何かのログインでパスワードを忘れた時にメールアドレスを入力してそのアドレス宛に再設定などを行うURLが送られてくるやつです。
## 基本的な流れ
① メールアドレスを入力してそのアドレス宛にメール送信
https://book.cakephp.org/2/ja/core-utility-libraries/email.html“`
App::uses(‘CakeEmail’, ‘Network/Email’);
$content = array(‘url’ => $url);
$email = new CakeEmail();
$email->from(‘example@test.com’)
->to($post_email)
->template(‘text_email’)//テンプレートファイル名指定
->viewVars($con
名前空間(namespace)の使い方
##名前空間を使う場面
ファイルを複数に分割して読み込むとき。
##使用目的
同一関数名やクラス名、メソッドなどのバッティングを防ぐ。
ファイルが増えたり、複数人での開発時などに有効。##使用例
呼び出し(require)元ファイル
“`php
name = $name;
}
public function greeting() {
echo “Good morning, Mr $this->name!”;
}
}
?>
“`実行ファイル
“`php
wordpressの投稿日と最終更新日の違い
備忘録
– 個別投稿ページとかで
投稿日
“`php
“`最終更新日
“`php
“`
PHPコーディング規約について知る
# PHP-FIG
The PHP Framework Interop Gruop
https://www.php-fig.org/
ある程度のコーディングルールについて イイネ! がまとめられた場所# ACCEPTED なルール
## PSR-1: Basic Coding Standard
### 概要
共有PHPコード間の高度な技術的相互運用性を確保するために必要な標準コーディング要素と見なされるべきもの
### タグ
ファイルは、 か = ?> のどちらかを使用する必要がある
### 文字コード
ファイルは、文字コードについてBOMなしUTF-8を使用する必要がある
### Side Effects
ファイルは、以下のいずれかを行うべきだが、両方を行うべきではない
クラス、関数、定数などを宣言する
出力の生成、設定ファイルの変更など
Side Effects = クラス、関数、定数などの宣言に直接関連しないロジックの実行、ファイルを include するだけ
出力の生成、require または include の明示的な使用、外部サービスへの接続、
public staticとは?
# Laravelのバリデーションのルール
Laravelでバリデーションのルールは様々な書き方があると思うが、もしModelに書くとこのようになるだろう。
“`php
namespace App;use Illuminate\Database\Eloquent\Model;
class Test extends Model
{
public static $rules = array(
‘title’ => ‘required’,
‘body’ => ‘required’,
);
}
“`そして、Modelに書いたルールをControllerではこのように利用できる。
“`php
namespace App\Http\Controllers;use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Test;class TestController extends Controller
{
public function create(R
phpmigでマイグレーションを行う
#phpmigとは
phpmigは、フレームワークによらないマイグレーションツールです。
laravelやFuelPHPなどのフレームワークでは標準のマイグレーションツールが存在しますが、素のPHPを使う場合に適していません。
(各フレームワークのマイグレーションのみを使う方法もありますが)
そこで今回は、マイグレーションにphpmigの利用を考えます##インストール方法
まずはじめに、phpmig 及び pimpleのインストールを行います。
インストールはcomposerにて行います。“`
//phpmigのインストール
$ composer require davedevelopment/phpmig//pimpleのインストール
$ composer require pimple/pimple
“`##初期設定
次に、phpmigの初期設定を行います。“`
//phpmigの設定ファイルphpmig.phpを作成
$ vendor/bin/phpmig init
“`今回はMAMPのMySQLに接続をします。
“`phpmig.php