- 1. 環境
- 2. 手順
- 3. 環境構築してみよう
- 3.1. DockerフォルダDL
- 3.1.1. PDO
- 3.1.2. PHPオリジナル問題作成2
- 3.1.3. PHPのdate関数、timestampを使って2021/01/01から12/31までのカレンダーを作ってみる。
- 3.1.4. 日本語をエスケープしないでJSON文字列を作る
- 3.1.5. 【PHP】基本文法メモ 配列
- 3.1.6. Laravel 8.40にEloquentリリーションwithOnly関数到着
- 3.1.7. 【PHP】【個人開発】SNSぽいサービス
- 3.1.8. LaravelでPHP Fatal error: Allowed memory size of 1610612736 bytes exhausted…エラー
- 3.1.9. Docker X Laravel PHP CS Fixer を導入して、ソースコードを自動整形する
- 3.1.10. jsからphpにデータを渡してjsonファイルで保存する
- 3.1.11. sprintfで書式を整える
- 3.1.12. 【Laravel】Seederファイルを作成して、ダミーデータを格納する
- 3.1.13. メンタル疾患症状管理、服薬管理Webシステム(書き込み結果、ファイル出力編)
- 3.1.14. メンタル疾患症状管理、服薬管理Webシステム(画面入力編)
- 3.1.15. 【php】複数のデータセットを入力画面から作成する方法
- 3.1. DockerフォルダDL
PHPでメモリ不足のエラーが表示されてしまう
## 事象
環境構築などで下記のようなエラーと遭遇しましたのでその対処法を記載します。“`
Allowed memory size of *** bytes exhausted
“`## php.iniを探して編集する
まずphp.iniを確認するためパスを探します。(/etc下にいることが多いです)“`
$ ls /etc | grep php.ini
php.ini.default
php.ini.default-previous
“`上記のようにphp.iniがない場合php.ini.defaultをコピーして編集します。
“`
$ sudo cp /etc/php.ini.default /etc/php.ini# 作成されているか確認する
$ php -i | grep php.ini
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini$ sudo chmod 644 /etc/php.ini
$ sudo vi /etc/p
【PHP】これで配列取得も自由自在!?Paizaの値取得・出力方法まとめ
Paizaの値取得・出力方法が分かりにくかったので、簡単に取得できる方法をまとめました。
##Paizaの値取得サンプルコード解説
Paizaを始めた頃は、以下のコードが何を意味しているのかよく分かりませんでした。![スクリーンショット 2021-05-15 5.30.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591686/3aa78b3b-637e-bcb1-8e3d-1f7b92d40f91.png)
“`PHP:Paizaの値取得・出力サンプルコード
Laravel6.x 画像をリサイズしてアップロードする方法
`Auth`の認証機能で作成された新ユーザー登録に画像のアップロード機能を追加していきます。画像アップロード処理は`Intervention Image`ライブラリを使用して画像をリサイズして保存する方法をやっていきます。
画像保存するにあたってusersテーブルにimg_nameカラムを追加する
[Intervention Imageについて](http://image.intervention.io/)## 実装環境
* PHP 7.3
* Laravel 6.20.26## 1.Intervention Imageをインストール
まずはライブラリをcomposerを使用してインストール“`
$ composer require intervention/image
“`次に `config/app.php ` でプロバイダーとエイリアスに追加する。
“`PHP:config/app.php
‘providers’ => [
Intervention\Image\ImageServiceProvider::class,
],‘aliases
Laravelで
ローカルで開発中地味に改善するのに困ったのでメモ
#実装したいもの
・自己紹介に入力した内容を修正したいこのように書いていました。
“`edit.blade.php
“`![スクリーンショット 2021-05-14 21.12.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1276481/70019a9f-791c-e838-601d-14db308dacdd.png)
このように先頭に変なスペースが出てきます。
#改善方法
・一行で書く。たったこれだけでした。
“`edit.blade.php
“`![スクリーンショット 2021-05-14 21.12.34.png](https://qiita-image-stor
【環境構築】Docker×Laravel×MySql
docker×laravel×mysqlを使った環境構築を行ったのでその手順をご紹介します。
初めてdockerで環境構築を行ったので、少しでも参考になればと思います。環境
| 環境 | バージョン
|:———–|————
| PHP | 7.0.27
| FW | CakePHP3.2.13
| Apache | 2.2.15
| OS | CentOS6.9
| DB | MySQL5.6.39手順
1. DockerフォルダDL
2. Git Clone
3. Docker コンテナに入る
4. Apache起動
5. ドキュメントルート設定
6. Composer install
7. mysql起動
8. データベース作製
9. app.phpの設定
10. データベース接続環境構築してみよう
DockerフォルダDL
今回は元々
PDO
# PDO(PHP Data Object)
データベースにアクセスするためのインターフェイス
接続するデータベースが変更されても同じ関数を使用してクエリ(データベースへの問い合わせ)の発行やデータの取得が行えます。
PHPオリジナル問題作成2
###続き
#オブジェクト指向、インスタンスとクラス
■問題1
other/Hero.php/Heroクラスを作成。name(String型),hp(int型)のフィールドを準備し、以下のメソッド作成。
メソッド名:sit
戻り値:なし
引数リスト:int sec
処理内容:
・自分自身のhpフィールドに引数(sec)をたす。
・自分自身のnameフィールドを表示。(表示形式:nameフィールド+は+引数(sec)+秒座った。)
・引数(sec)を表示。(表示形式:HPが+引数(sec)+ポイント回復した。)main8.phpでHeroインスタンスを生成。
nameフィールド:カズヤ(自身の名前)
hpフィールド:100
表示内容:
・sitメソッドを呼び出してください。(引数は5)
・hpフィールドを表示してください。解答
“`php:mai8.php
//問題1
PHPのdate関数、timestampを使って2021/01/01から12/31までのカレンダーを作ってみる。
#date関数
日付とか時刻を返してくれる関数です。試しに色々と書いてみます。“`
print(date(‘G時i分s秒’).”\n”);
->4時47分57秒print(date(‘Y/n/j’).”\n”);
->2021/5/14print(date(‘Y F,j’).”\n”);
->2021 May,14print(date(‘n/j(D)’).”\n”);
->5/14(Fri)
“`
こんな感じになります。
date関数のパラメータ(GとかY,n,jなどは下記のqiitaなどを参照してください。
https://qiita.com/shuntaro_tamura/items/b7908e6db527e1543837##date関数の引数
date関数のリファレンスでdate関数の書式を確認してみます。
>
> date ( string $format , int|null $timestamp = null ) : string
>これはdate関数が日時をどう表すのかのフォーマットです。
第二引数にタイムスタンプなるものが指定されています。
日本語をエスケープしないでJSON文字列を作る
# 概要
JSON形式で保存されているログを画面出力することがあった。しかし、 `json_encode()` した文字列のままだと、
日本語部分が文字化けしたように読めない。そのため、一度デコードして、整形し直してみる。
## 独自関数を作ってみる…
`$log=print_r($json, true)` でも配列の中身を出力できるが、
bool型のところがfalseの場合空文字になったりとイマイチ見た目が悪かった。そのため、独自関数を作って対応してみる。
“`php
/**
* @param string $json
* @param bool $is_vector
* @return string
*/
function decodeMbJsonString (string $json, $is_vector = false) {
// 一度デコードして、日本語を読めるようにする
$data = json_decode($json, true);// JSON形式に再整形する
$data = array_m
【PHP】基本文法メモ 配列
基本的なPHPの文法についてメモっておく。
## 対話モードで色々な文法を試す
“`
$ php -aPHP >
“`
対話モードが立ち上がる。### 配列
“`
PHP > $animals = [“dog”, “wani”, “gorira”];
php > echo $animals;
PHP Notice: Array to string conversion in php shell code on line 1
Array
php > echo $animals[1];
wani
“`
こんな感じで配列を定義することができる。
Laravel 8.40にEloquentリリーションwithOnly関数到着
## 概念
モデルを取得するときに、常にいくつかのリレーションをロードしたい場合は、モデルの`$with`プロパティで定義出来ますが、[このPR](https://github.com/laravel/framework/pull/37144)でデフォルトのEagerロードをオーバーライドして、`$with`プロパティ内のすべてのアイテムを取得せず、`withOnly`で定義されているリレーションのみ取得することができるようになりました。
## セットアップ
ジュースの管理システムを例にして、ジュース、ジュースのメーカー(作っている会社)と種類(トマト、アップルなどなど)のモデルでそれぞれの適切な情報を管理する。その上この例のサービスの仕組みではジュースのモデルのデータを取得するとき、ほぼ全ての場合においてメーカーの情報も必要となります。(たとえばメーカーの名前を表示することなど)。そのためジュースのモデルの`$with`で定義することになって、デフォルトでloadすることにします。
このようなジュースのモデルは下記のようになります。
“`php
【PHP】【個人開発】SNSぽいサービス
PHPでSNSに近いサービスを開発しました。
投稿、フォロー、メッセージ等の基本的な機能を実装しています。![play.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597913/ade58098-b653-f8d1-1b9f-e7d25561f4a4.gif)
##URL
https://karirin3948.herokuapp.com/user_login/user_top.php?type=main&page_id=current_user
##GitHub
https://github.com/karirin/app
##使用技術
・フロントエンド
– HTML
– CSS
– Javascript
・バックエンド
– PHP
– FWなし
・インフラ/開発環境
– heroku
– Mysql
– VScode
– Git/GitHub##実装機能
###メッセージ機能
ユーザー同士のやり取りはもちろん、新規メッセージがあるときはログイン時にフラッシュメッ
LaravelでPHP Fatal error: Allowed memory size of 1610612736 bytes exhausted…エラー
Laravelでデバックバーをインストールしようとしたらエラー出ました。
原因は別件でphpのバージョンを変えたのでその影響でした。
忘れないように忘備録。。***
“`console:コンソール
composer require barryvdh/laravel-debugbar
“`(*゚▽゚)ノ ターン
いつものようにデバックバーをインストールだっ“`console:コンソール
PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted …
“`(;´Д`)
あれなんか急にエラー出た。。。***
調べたらComposerのメモリ不足エラーみたいでした。。
php.iniの設定変更で治るみたいなので場所を調べたら“`console:コンソール
$ php –ini | grep “php.ini”
“`↓
“`console:コンソール
Loaded Configuration File:/usr/local/etc/php/7.4/php.ini
Docker X Laravel PHP CS Fixer を導入して、ソースコードを自動整形する
## 環境
– https://github.com/ucan-lab/docker-laravel
– [最強のLaravel開発環境をDockerを使って構築する](https://qiita.com/ucan-lab/items/5fc1281cd8076c8ac9f4)
– 記事執筆時バージョン
– PHP: 8.0
– Laravel: 8.0
– php-cs-fixer: 3.0.0## PHP Coding Standards Fixer(php-cs-fixer)
https://github.com/FriendsOfPHP/PHP-CS-Fixer
リポジトリ名は`PHP-CS-Fixer`、正式名称は`PHP Coding Standards Fixer`、コマンド名は`php-cs-fixer`となります。
## php-cs-fixer の導入
“`shell-session
$ composer require –dev bamarni/composer-bin-plugin
$ composer bin tools requ
jsからphpにデータを渡してjsonファイルで保存する
jsからサーバーにデータを保存したかった。
XAMPPを導入し、PHPを何となく書けるようになった。
しかし、データベースの使い方がよく分からなかった。
そんな時に無理やり編み出した手法をここに晒す。“`php:save.php
“`“`js:script.js
async function save(value1, value2){
let req = await fetch(“./save.php”,{
method: “post”,
sprintfで書式を整える
$date = sprintf(‘%04d年 %02d月 %02d日’, 2021, 5, 13);
print($date);//%の後の数字(04etc)で表記する桁数を指示している
//dは数字の意味で、数字以外が記入されたときにエラーで弾くようになっている。
//※これだけで万全ではないので、注意//文字を書きたいときは、d→sに変更するとOK
【Laravel】Seederファイルを作成して、ダミーデータを格納する
Seederファイルの作成が初見だったためメモです
## ファイルの作成
“`
$ php artisan make:seeder 任意のファイル名
“`作成したファイルに以下のように記述しました。色んなパターンあると思います
“`php
‘hoge-company’
]);
}
}
“`## 作成したファイルを実行するように記述する
“`php:/database/seeds/DatabaseSeeder
メンタル疾患症状管理、服薬管理Webシステム(書き込み結果、ファイル出力編)
メンタル疾患病状管理、服薬管理Webシステム(書き込み結果、ファイル出力編)のソースコードを公開いたします。
ファイル書き込み(result.php)のソースコードです。
“`HTML
メンタル疾患症状管理、服薬管理Webシステム(画面入力編)
メンタル疾患症状管理、服薬管理Webシステム(画面入力編)のソースコードを公開いたします。
メインとなるmental.phpのソースコードです。
“`HTML
関連する記事
OTHERカテゴリの最新記事
-
- 2024.09.19
JavaScript関連のことを調べてみた
-
- 2024.09.19
JAVA関連のことを調べてみた
-
- 2024.09.19
iOS関連のことを調べてみた
-
- 2024.09.19
Rails関連のことを調べてみた
-
- 2024.09.19
Lambda関連のことを調べてみた
-
- 2024.09.19
Python関連のことを調べてみた