- 0.0.1. PHPの三項演算子
- 0.0.2. Moodleの”サイトアップロード上限”を変更する。
- 0.0.3. 【中国語】什么是.env文件?
- 0.0.4. 【Laravel】マイグレーションの基礎
- 0.0.5. XAMPPのapacheがスタートしない件が二日かけて解決
- 0.0.6. PHP独学ノート その1
- 0.0.7.
- 0.0.8. ブラウザバック時、フォームの値を表示させない方法
- 0.0.9. Twitter API(v1) 経由でスレッドを作成する際の挙動
- 0.0.10. カスタムフィールドで数値を3桁区切りでカンマを自動でつける
- 0.0.11. PHPでGoogle Identity Platformにログアウト
- 0.0.12. MAMPでPHPのエラーをブラウザ表示させるには
- 0.0.13. 「別プロセスの PHP が今何をしているか」を実況するプログラムを PHP で作った
- 0.0.14. Laravelのコントローラーの継承先でDIされたモデルの中身を書き換えたい時の対処法
- 0.0.15. 【Laravel】AccessorでEloquent属性値を変換して処理を共通化する
- 0.0.16. 【作業記録】環境構築
- 0.0.17. 【laravel】configフォルダを使用したプルダウンの作り方
- 0.0.18. textareaの入力内容をページの更新後も保持しておく方法
- 0.0.19. Laravelで画像をリサイズして表示する
- 0.0.20. PHPでお問い合わせフォームを作成する①
- 1. 入力画面
PHPの三項演算子
#三項演算子とは
“`
条件式 ? 式1 : 式2
“`条件式を評価し、TRUEであれば式1をFALSEであれば式2を返す。
演算子なので、IF分とは違い処理を記述するのではなく式を記述する。
Moodleの”サイトアップロード上限”を変更する。
標準では2MBが最大なのだが、バックアップファイルのサイズは2MBを超えることもある。Moodleだけでは最大値は変更できないので、php-fpm側の設定を変更する。
# 環境
– Ubuntu 18.04
– Moodle 3.10
– php-fpm 7.2
– nginx 1.14.0 (Ubuntu)# 設定
以下では、最大サイズを8MBに設定している。
“`php:/etc/php/7.2/fpm/php.ini
post_max_size = 8M
upload_max_filesize = 8M
max_execution_time = 600
“`“`:/etc/nginx/sites-enabled/default
location ~ [^/]\.php(/|$) {
client_max_body_size 8m;
}
“`# 再起動
“`
sudo systemctl restart php7.2-fpm
sudo systemctl restart nginx
“`# 結果
![size –
【中国語】什么是.env文件?
在环境搭建过程中,经常会遇到.env文件,对于初学者来说,env到底是什么文件呢?
【Laravel】マイグレーションの基礎
#はじめに
Laravelでの共同開発で自身が担当したタスクをまとめていきます。
初学者のため学習のアウトプットしての意味と備忘録としての意味で書いています。
もし間違いがありましたらコメントにてご指摘いただけますと幸いです。#マイグレーションとは
マイグレーションとはデータベースのバージョン管理機能。##マイグレーションのメリット
マイグレーションを使わずDB作成、テーブル作成をする時はSQLコマンド、phpmyadminですることも可能です。
ただ、チーム開発の場合1人1人がSQLコマンドを実行したりするよりもマイグレーションを使うとマイグレーションファイルを共有してartisanコマンドを実行するだけでチーム全員同じDBの作成が簡単にできることがメリットです。##マイグレーションファイル作成
artisanコマンドを使用しマイグレーションファイルを作成する。
`$ php artisan make:migration create_users_table`作られたファイルの場所は`database/migrations`フォルダに設置される。
#マイグレーシ
XAMPPのapacheがスタートしない件が二日かけて解決
定番な解決法として、サーバーネームが異なるため、ローカルホストの80を8080に変えるといった様々なことを試しても解決しませんでした。
そこで、たまたま私が見つけた解決法があったので紹介します。。
それは、xamppのファイルを右クリックし、アクセスを許可するのところから、アクセスを削除する。
たったこれだけで、apacheが起動しないのが解決しました。あの二日間は何だったのか。。
起動しないで悩んでいる方、(ほぼいないと思う)ぜひ検討してみてください。何かあった時の保証はできません!
では!引き続き勉強を頑張っていきたいです!
PHP独学ノート その1
PHPは(スクリプトブロック)の~の部分に処理を記述する。
なお、スクリプトブロックが.phpファイルの末尾で終わる場合はスクリプトの終了を表す ?> は省略できる。
むしろ省略しないとレイアウトに微妙にズレるので省略した方が良い。出力方法はecho か print。
文字列を指定する場合には必ず前後を ‘ シングルクォートか “ ダブルクォートでくくる必要がある。
PHPはHTML埋め込み型言語である。
なのでHTML内に記述することができる。
省略構文
出力するべき値が増えてくると php や print といった記述ですら間違えやすさに直結する。
なので単純な値を出力する場合にの代わりに、
=~?>がある。= ‘Hello php’; ?>
= “Hello php”; ?>PHPでは、文の区切りに ; セミコロンを使う
ブラウザバック時、フォームの値を表示させない方法
## 解決したいこと
フォーム送信完了後にブラウザバックするとき、フォームの入力値を消したかった。## 解決方法
該当フォームに対し、`autocomplete=”off”`を追加する。
自動補完をオフにすることによって、入力値を保持しなくなる。“`HTML
“`
また、`form`だけでなく`input`にもこの属性を追加できる。
“`HTML
“`
## 詳細
### 対象者
* プログラミング初学者* php初学者
### 経緯
ログイン後のマイページに、文書投稿のためのフォームを置いていた。
以下の流れでページ遷移する。1. フォーム入力
Twitter API(v1) 経由でスレッドを作成する際の挙動
# API 経由でのスレッド作成方法
まず、「API 経由でスレッドを作成する」という用途で用意された API エンドポイントはなかった。
[php – Twitter api – is it possible to post a thread? – Stack Overflow](https://stackoverflow.com/questions/51563995/twitter-api-is-it-possible-to-post-a-thread)
リプライを利用して実現する。エンドポイントは、 [POST statuses/update](https://developer.twitter.com/en/docs/twitter-api/v1/tweets/post-and-engage/api-reference/post-statuses-update)。
PHP のライブラリである [TwitterOAuth](https://twitteroauth.com/) を利用すると、以下のようになる。
“`
$statues = $connection->po
カスタムフィールドで数値を3桁区切りでカンマを自動でつける
カスタムフィールドで金額を入力する項目を出力する際に、自動で3桁区切りでカンマをつけたいことがあったのでメモ
。PHPの“number_format();“を使用する
“`php
“`
参考記事 → https://www.web-myoko.net/blog/wordpress/comma-separated-number-advanced-custom-fields-wordpress/
PHPでGoogle Identity Platformにログアウト
厳密にはPHPというより、どうやってサーバサイドでログアウトをするかになる。
PythonのSDKではrevoke_refresh_tokensというものが提供されており、これを呼び出すとリフレッシュトークンが無効になる。さらにトークンも無効になる。
https://firebase.google.com/docs/reference/admin/python/firebase_admin.auth#revoke_refresh_tokens処理の中身を見ていくとsetAccountInfoでvalidSinceを更新している。
validSinceは記載の通りタイムスタンプ。“`
validSince:string
Timestamp in seconds for valid login token.
“`Firebase Admin SDK for PHPでは指定できなさそう
https://firebase-php.readthedocs.io/en/stable/user-management.html実際呼び出してみると、他の値をsetAccountIn
MAMPでPHPのエラーをブラウザ表示させるには
![PHPのエラー箇所をブラウザ表示させるには.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/566867/f184cffd-7da1-1d40-a936-82a05a13a817.png)
https://tomosta.jp/blog/mamp-display-errors/
「別プロセスの PHP が今何をしているか」を実況するプログラムを PHP で作った
# ギフハブ
– https://github.com/sj-i/php-profiler# 三行要約
– [adsr/phpspy](https://github.com/adsr/phpspy) の [PHP](https://www.php.net/) 版みたいな奴として [sj-i/php-profiler](https://github.com/sj-i/php-profiler) を趣味で作ってる(ここ 2 年くらい少しずつ)
– もはや PHP に不可能なことはあまりなく、システムコールやメモリ操作を伴う比較的低レベルのプログラミングさえ可能で、PHPer が PHP を極めるための道ももはや果てしない
– ランタイム好きな人にはデバッガとかサンプリングプロファイラとか作るの超オススメ# なにこれ……
– 別プロセスで動作中の PHP プロセスのコールトレースをのぞき見る PHP プログラム## つまり?
“`
$ ./php-profiler i:trace — php -r “fgets(STDIN);”
“`みたくやると、`–`
Laravelのコントローラーの継承先でDIされたモデルの中身を書き換えたい時の対処法
Laravelでコントローラーの継承をした時に、DIされたモデルの中身を書き換えたい、
例えば、“`php
class CommentController extends Controller
{
public function show(Comment $comment)
{
return $comment;
}
}“`
となっているときにそれを継承した`AnotherComment`という仕組みがあるとします。
この`AnotherComment`機能では`Comment`モデルを使用するのではなく`AnotherComment`モデルを使用したいが、
`AnotherComment`コントローラー(モデル)としては元の`Comment`コントローラー(モデル)を継承したいとします。この時にそのまま継承すると、`Comment`モデルがDIされてしまいます。
なので、`Comment`モデルのbindを上書きしてしまいましょう。“`php
//NOTE: クラス識別のためuse必須。エラーが発生しないので注意。
u
【Laravel】AccessorでEloquent属性値を変換して処理を共通化する
# 概要
`Eloquent Model` から取得したIDをハッシュ化する処理を`Accessor`を利用して行ってみましたので紹介します
> アクセサは、Eloquentの属性値にアクセスしたときに、その値を変換するものです。アクセサを定義するには、モデルにget{Attribute}Attributeメソッドを作成します。
https://laravel.com/docs/8.x/eloquent-mutators#attribute-casting
# `Accessor` の定義
– `{カラムのアッパーキャメルケース}Attribute` の形式でメソッドを命名する
– 今回は`hash_id`にハッシュ化したIDを格納しますので`HashId`としています“`php:User.php
/**
* Attributeにhash_id属性を生成するアクセサ
* @return string
*/
public function getHashIdAttribute()
{
return urlencode(Hash::make($this
【作業記録】環境構築
環境構築
昨日Laravelのポートにアクセスできたのにできなくなってしまった。環境を再構築して試そうとしてみたが
docker-compose exec web bash
を記入してもコンテナに移動できなかった。一度作業手順(テキスト参照)に再度構築を試します
【laravel】configフォルダを使用したプルダウンの作り方
##【概要】
プルダウンを作成する際viewをスッキリさせたかったので、configフォルダにプルダウンで表示したい項目を記述し、viewに引っ張ってくる方法で作成しました!完成図はこんな感じになります。
(今回は都道府県のプルダウンを作成します!)![プルダウン検索.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1046420/dd465466-2a4d-0aae-2bce-8be08ded9255.png)
![プルダウン.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1046420/2bb253d4-d505-0c47-6519-4117e62592ce.png)
##①プロジェクトのconfigフォルダにPrefectures.phpを作成
configフォルダにPrefectures.phpを作成し、47都道府県を連想配列で記述します。“`php:Prefectures.php
textareaの入力内容をページの更新後も保持しておく方法
## 解決したいこと
`textarea`に入力された値を、ページの更新後も保持しておきたい。## 解決方法
入力内容が代入された変数を、`textarea`タグの**あいだに**埋め込む。“`php
//
“`
なぜこの位置に書くか。
原因は、`textarea`にvalue属性がないからだ。## 詳細
### 対象者
* プログラミング初学者
* php初学者###経緯
フォームボタンを押したときに、入力不備があればエラーメッセージを出す仕様にしている。
(*コードは簡略化)“`php
// 空白箇所のエラー例
* 内容を入力してください
“`
ボタンを押すとページが再表示されるので、入力内容は消えてしまう。
しかし、正しく入力さ
Laravelで画像をリサイズして表示する
#経緯
https://qiita.com/Hiroto0706/items/9cb509cff284783e2550
上の記事ではlaravelで画像を表示できるようにしました。
しかし、画像によっては大きく表示されてしまっていたので、画像のサイズを変更して表示したい!と思い画像をリサイズして表示することに挑戦!?###やりたいこと
画像をリサイズして表示する#環境
・M1 Mac
・Laravel Framework 8.82.0
・PHP 8.1.2
・docker#やったこと
###①composerを使ってintervention/imageをインストール。
以下のコマンドを使って、`Intervention Image`という外部のライブラリをインストールする。“`terminal
composer require intervention/image
“`###②設定を行う
インストールできたら、configフォルダの中にある`app.php`で設定を行う!“`php:app.phpのproviders
‘providers’ =>
PHPでお問い合わせフォームを作成する①
PHPを使用してお問い合わせフォームを作成する方法を解説します。バリデーションなどの一部機能はJavaScriptで実装します。
本稿は2部構成となっております。第一部ではとりあえずバリデーションは無視して、実際にフォームに入力した内容をメール送信できるところまで進めます。# 完成イメージ図
![お問い合わせフォーム イメージ図.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2485055/281729cc-681f-164a-8a19-b9e05b232434.jpeg)
# 入力画面
“`html:index.php
入力画面
メッセージにつきましては、下記のフォームよりご入力お願いいたします。
OTHERカテゴリの最新記事
-
- 2024.09.20
JAVA関連のことを調べてみた
-
- 2024.09.20
iOS関連のことを調べてみた
-
- 2024.09.20
JavaScript関連のことを調べてみた
-
- 2024.09.20
Rails関連のことを調べてみた
-
- 2024.09.20
Python関連のことを調べてみた
-
- 2024.09.20
Lambda関連のことを調べてみた