- 0.0.1. Docker composer のインストールでバージョンを固定する方法
- 0.0.2. laravel PHP バージョンを指定してuuidを生成する
- 0.0.3. composer インストール時にバージョンを指定する
- 0.0.4. 良い感じのphpのクエリビルダを探して
- 0.0.5. mysqlで絵文字以降が消える問題の対策(PHP)
- 0.0.6. PHP基礎 ~連想配列編~
- 0.0.7. 一部ディレクトリだけWordPress導入したサイトの、共通部分二重管理問題を解決する
- 0.0.8. paiza PHP Bクラス 過去問の日別訪問者数の最大平均区間(前半)
- 0.0.9. Google SpreadSheetを簡易CMSとして使ってみた
- 0.0.10. Setup : windows server IIS + PHP 8.x + Laravel 8.x + MariaDB 10.x for Unit Testing
- 0.0.11. Githubでフォルダに矢印がありファイルの中身が見えない
- 1. 開発環境
- 2. 起こってる現象
- 3. 試行錯誤してみる
- 3.0.1. PHP用SlackAPIのUtilityライブラリを公開しました!
- 3.0.2. Codeigniter4の’Access-Control-Allow-Origin’対策やAPI用出力のやり方
- 3.0.3. テスト
- 3.0.4. 【Laravel 8.x】Factoryヘルパーを瞬時にStaticメソッドに変換しませんか?
- 3.0.5. PHPのエラーメッセージ有効化はphp.iniを使った方が良い
- 3.0.6. Laravel バリデーション パスワードでは半角英数字記号・・・
- 3.0.7. 三項演算子
- 3.0.8. 【Atcoder for PHP】二次元配列の標準入力について調べる。
- 3.0.9. Laravel + jQueryでサイト内お気に入り機能を実装してみた
Docker composer のインストールでバージョンを固定する方法
# 概要
– DockerのPHPコンテナにcomposerをインストールする時のDockerfileの記載でcomposerのバージョンを固定する方法をメモ的にまとめる
# 方法
– 下記の様にPHPのDockerfileのcomposerインストール部分を記載することでcomposerのバージョンを2.2.4に固定する。
“`Dockerfile
# composerのインストール
RUN php -r “readfile(‘https://getcomposer.org/installer’);” > composer-setup.php && \
php composer-setup.php –filename=composer –version=2.2.4 && \
php -r “unlink(‘composer-setup.php’);” && \
mv composer /usr/local/bin/composer
“`
laravel PHP バージョンを指定してuuidを生成する
# 概要
– uuid バージョン4の生成方法は下記で説明したが、その他のバージョンのuuidを取得する方法をまとめる
– [laravel uuidの生成(uuid version4のみ)](https://qiita.com/miriwo/items/25d2331dff5549d2a834)
– 本方法でバージョン1〜6までのuuidの生成をする事ができる。# 方法
– ramsey/uuidというcomposerのライブラリを取得して使用する。
– [https://github.com/ramsey/uuid](https://github.com/ramsey/uuid)
– 下記コマンドを実行してramsey/uuidを取得する。“`terminal
$ composer composer require ramsey/uuid
“`– 下記の様にuseを記載することですぐにuuidを生成する事ができる。(下記はuuid バージョン4を生成)
“`php
use Ramsey\Uuid\Uui
composer インストール時にバージョンを指定する
– 2.2.4に固定したい時は下記
“`
$ php -r “readfile(‘https://getcomposer.org/installer’);” > composer-setup.php
$ php composer-setup.php –filename=composer –version=2.2.4
$ php -r “unlink(‘composer-setup.php’);”
$ mv composer /usr/local/bin/composer
“`# 参考文献
– [https://getcomposer.org/download/](https://getcomposer.org/download/)
“`
–version
You can install composer to a specific release by using the –version option and providing a target release. Example:php composer-setup.php –version=1.0.0
良い感じのphpのクエリビルダを探して
さくっとphpを書く時に、フレームワークを導入するまでも・・・。な時に一番困るのがmysql用のライブラリ。直書きはちょっとめんどい。と言うわけで良い感じのクエリビルダを今のうちに探してメモしておくまん。
https://packagist.org/packages/usmanhalalit/pixie
シンプル。グループの記法が個人的に結構好み。
“`php
QB::table(‘my_table’)
->where(‘my_table.age’, 10)
->where(function($q)
{
$q->where(‘name’, ‘LIKE’, ‘%usman%’);
// You can provide a closure on these wheres too, to nest further.
$q->orWhere(‘description’, ‘LIKE’, ‘
mysqlで絵文字以降が消える問題の対策(PHP)
表題通り。
複数データをserializeしてmysqlに収納していたら、一部データが吹っ飛ぶことがあった。調べると絵文字のせいで、そこ以降の文字列が全てふっとび、serializeとしてのデータを保持できずに、変換できなくなっていた。これの対策をする。
mysqlのバージョンが低いと、UTF-8環境で絵文字が吹っ飛ぶらしい。なので、これを回避するために、文字列を全てエンコードしちゃうという力業にでる。
“`php
function my_serialize($obj) {
return json_encode(serialize($obj));
}function my_unserialize($obj) {
$temp_obj = json_decode(@unserialize($obj), true);
if ($temp_obj) $obj = $temp_obj;
return $obj;
}
“`シリアライズした文字列をjsonでエンコードすることで、絵文字用の文字列も全てエンコードしてしまう。それをデコードするときは、
PHP基礎 ~連想配列編~
## はじめに
この記事はフロントエンドエンジニアがバックエンド言語を勉強しようとアウトプット目的で書いている記事になります。
自分用のメモとして書いていきます。## 配列
“`php
$array = [‘りんご’,’みかん’,’バナナ’];
echo $array[1]; // みかん
“`
JavaScriptとあまり変わらないですね。
「$」がつくとテンプレートリテラルっぽいですね。## 連想配列
“`php
$company = [
‘開発部’ => [
‘佐藤さん’, ‘鈴木さん’, ‘田中さん’
],
‘総務部’ => [
‘青木さん’, ‘高田さん’, ‘小林さん’
]
];echo $company[‘開発部’][1]; // 鈴木さん
“`ふむふむ、オブジェクトのキーとバリューは「=>」で表現するのね。
なんだかアロー関数みたいだ。### もっと高階層にしてみる
“`php
$company = [
‘開発部’ => [
‘佐藤さん’ => [
‘身長’ => 170,
一部ディレクトリだけWordPress導入したサイトの、共通部分二重管理問題を解決する
#背景
もともと静的HTMLで作ったサイトに、更新コンテンツなど一部ディレクトリだけWordPressを導入するってケース、あると思います。
フルで全ページWordPressで作ったサイトでは、ヘッダーやフッターなどの共通部分はWordPressテーマだけで管理できますよね。
でも、一部ディレクトリだけWordPressだと、そうはいかない。
ヘッダーフッターなど共通部分に更新が入ったら、HTML内の該当部分を編集して、WordPressテーマのheader.phpとfooter.phpも編集して…って効率がよろしくない。ミスもありそう。
一括管理したい!!!!
ということで、一括管理できるようにしました。#ファイル構成
こんな感じの構成のサイトだとしましょう。“`
.
├── index.html
├── about
│ └── index.html
├── assets //画像やCSSはここに格納
└── wordpress // wordpressディレクトリ
└── wp-content
“`#手順
###PHPが動くようにする
まず、index
paiza PHP Bクラス 過去問の日別訪問者数の最大平均区間(前半)
タイトル通り、paizaのPHP Bクラス 日別訪問者数の最大平均区間を自力で何とかクリアしたのですが
PHPは解答コードがなかったため、自力でやるしかなく足りない頭がパンクしました。笑もっとスマートな書き方があるとは思いますが、
初学者の方などの参考になればと思いますのでよろしくお願いします。問題文はこちらから確認してください。
https://paiza.jp/works/mondai/skillcheck_archive/max_rangeコードの記入はpaiza.ioを利用して、入力などを行ってます。
paiza.io:https://paiza.io/ja/projects/newではコードを書いていきます!
###1.入力値を求める“`
[$n, $kya] = explode(‘ ‘, trim(fgets(STDIN)));
$log = explode(‘ ‘, trim(fgets(STDIN)));
“`
$nには全n日分の日数、$kyaにはキャンペーンを行った日数がわかります。
$logにはn日分の一日分の閲覧数の値が入ります。pai
Google SpreadSheetを簡易CMSとして使ってみた
## 背景
WEB制作に関して、CMS化するほどでもないけど、サイトの外部で簡易データベース的な管理をしたいという要望があったため、Google SpreadSheetを簡易データベースとして使用するコードを書きました。
## 注意点
– SEOを考えると、CMS化するなりして頑張ってサイト更新した方がいいかもしれないです。
– Google Apiを使用しますが、これに更新が走ると動かなくなることがあります。定期的にチェックしましょう。## 手順
### Google SpreadSheetをJSONで取得する
こちらの記事を参考に。APIキーなどを発行します。スプレッドシートのデータの形は、1行目にデータの項目名、2行目以降に実データが入っていると仮定します。
ここではこんなデータということにしましょう。
これをHTMLに出力します。
![スクリーンショット 2022-02-04 22.22.09.png](https://qiita-image-store.s3.ap-northe
Setup : windows server IIS + PHP 8.x + Laravel 8.x + MariaDB 10.x for Unit Testing
#Outline
Unit Test , Integration (Feature) Test をonboadingで使用するために、phpの環境を構築した。
unit testができるまでの構築手順である
versionによって微妙にコマンドが異なったり、windowsでそもそもする人が少ないので、該当する方々の参考になればと思います#PHP
## 1. install PHP
https://www.php.net/
php windows versionのzipをダウンロードする。
今回、IISでFastCGIModuleで動かすため、Non Thread Safe versionを使う。その後、任意のフォルダに配置する。
今回は、 C:\phpに置く。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/267085/a88e68e2-a612-8887-e55d-974bef5ac8cd.png)## 2. install xdebug
Githubでフォルダに矢印がありファイルの中身が見えない
開発環境
・php
・mysql
・apache
・docker
・LaravelいわゆるLAMP環境です。
起こってる現象
githubにプッシュするまでは良かったのですが、
プッシュした後一度正常に出来たか確かめたら
タイトルのような現象になっており、
laravelプロジェクト本体のみファイルの中身が閲覧不能状態になっていました。laravel-cms/
├ app/(laravelプロジェクト)←これのファイルの中身が見えない状況
├ docker/
│ └ Dockerfile
└ docker-compose.yaml試行錯誤してみる
まずcommitメッセージを確かめて見ました、すると“`サブモジュールが<該当ファイル>に追加されました。“`と出ていました。
その次にターミナル場で“`git ls-files“`でリポジトリで管理しているファイルを一覧表示できますので確かめてみたら・・・・
“`terminal
.DS_Store
.gitattributes
README.md
a
PHP用SlackAPIのUtilityライブラリを公開しました!
タイトルの通りです!!
私が長期インターンでおこなった業務の中に、PHPでSlackAPIを使うものがいくつか含まれていて、今後使うことがあるかもしれないメソッドがあったので、経験の意味も込めて、ライブラリにして、composerで使えるようにPackagistで公開してみました!!##リンク
・Githubリポジトリ
https://github.com/Hottomo0610/php-slackapi-util・Packagist
https://packagist.org/packages/hottomo/slack-api-utility##作った経緯と感想
今まで自分が作ったもので何か外部に公開できるものが欲しい、そしてあわよくば就活で使いたい、という浅ましい考えのもとに作りました(なおレベルが低すぎるので恥ずかしい)。
もちろんライブラリの公開というのは初めての経験だったので、とても新鮮な気持ちでしたし、自分が作ったものが世に出るってこういうことなんだな、と思いました。正直特に感想とか思いつかなくてゴミみたいな文章書いてしまいましたが、このライブラリ、ぜ
Codeigniter4の’Access-Control-Allow-Origin’対策やAPI用出力のやり方
javascriptsのajax処理とかでAPIを作ったりすると、「’Access-Control-Allow-Origin’」のエラーが出たりする。のでそれの対策。
“`php
header(‘Access-Control-Allow-Origin: *’);
header(“Access-Control-Allow-Methods: POST,GET, OPTIONS”);
header(“Access-Control-Allow-Headers: *”);
“`これを追加することで’Access-Control-Allow-Origin’を回避することができる。
次に、json以外の余計な出力をしないようにする。
“`php
use ResponseTrait;
function api() {
header(‘Access-Control-Allow-Origin: *’);
header(“Access-Control-Allow-Methods: POST,GET, OPTIONS”);
hea
テスト
この記事はテスト記事です。
【Laravel 8.x】Factoryヘルパーを瞬時にStaticメソッドに変換しませんか?
# Laravel-Factory-Refactor
Laravel 8.x からFactoryの呼び出し方が大きく変更されました。
“`php:Laravel7.x以前
//ヘルパー
factory(User::class)->make()
“`“`php:Laravel8.x以降
//staticメソッド
User::factory()->make()
“`上記の変更をコマンド1つで完結できるパッケージを作成しました。
https://packagist.org/packages/wadakatu/laravel-factory-refactor
## How to Use
### 1. パッケージをインストール
“`bash
composer require wadakatu/laravel-factory-refactor –dev
“`### 2. Artisanコマンドを実行
“`
php artisan refactor:factory
“`### 3. 結果を確認
“`php:Before
factory(User:
PHPのエラーメッセージ有効化はphp.iniを使った方が良い
ini_set(‘display_errors’, “On”);
だと、セミコロンが無い時。真っ白の画面になります。
どこでエラーが出ているか分かりません。まずはphp.iniを探します。
[info.php]を作って中身を
にします。ブラウザから /info.php を見れば出ています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483166/9950f709-9089-be5f-9383-9e6b777aa021.png)
「Loaded Configuration File」で検索してください。ちなみに。
php -info|grep php.ini
を実行してもphp.iniファイルが見つかりますが、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483166/d2698fb6-bc19-c2e0-2716-6d718fad5
Laravel バリデーション パスワードでは半角英数字記号・・・
Lravel に限った事ではないのですが、パスワードの入力チェックで
1. 必須
2. 8文字以上
3. 半角英数字記号を1文字以上含むこと
4. 確認入力のものと一致すること
なんてものがあります(4はもう古いチェックかもしれませんが)。以下で解決します。
“`
‘rules’ = [
‘password’ => ‘required|confirmed|between:8,128|regex:/\A(?=.*?[a-z])(?=.*?\d)(?=.*?[!-\/:-@[-`{-~])[!-~]+\z/i’,
];‘attr’ = [
‘password’ => ‘ログインパスワード’,
];‘msg’ = [
‘password.regex’ => ‘:attributeは半角英数字記号それぞれ一文字以上使用してください’,
そのほかメッセージ
]
“`間違ってましたらご指摘お願いします。
三項演算子
if (a == b) {
b = 1;
} else {
b = 2;
}を
b = a == b ? 1 : 2;
と書き換えられる。
可読性の向上が期待できる。
【Atcoder for PHP】二次元配列の標準入力について調べる。
はじめまして
趣味的な動機でAtcoderを初めて1か月。全然わからない日々が続いております。実は今現在、パイザラーニングに逃げているのが現状だったりします。さて、競プロ初心者に最大のネック、標準入力
これについて、いろいろと調べていこうと思っています。
まずは直近で悔しかった二次元配列の取得と出力をPHPにて調査してみました。
他の標準入力についても、今後まとめていこうと思っています。#二次元配列の取得方法
入力例
|x |[0]|[1]|[2]|[3]|
|—|—|—|—|—|
|[0]|1 |2 |3 |4 |
|[1]|5 |6 |7 |8 |
|[2]|9 |10 |11 |12 |###(1)データ数が分からないとき
こちらはパイザでも使える標準入力・・・など初心者向けに出てくるパターンです。
どんなデータがどれだけあるか分からないときは下記のコードを利用しましょう。“`
//1行づつ配列を取得
while ($line = fgets(STDIN)) {
$tmp[] = trim($line);
Laravel + jQueryでサイト内お気に入り機能を実装してみた
# 概要
今回は`Ajax`を利用したサイト内お気に入り機能の実装方法を紹介します
![スクリーンショット 2022-02-03 0.15.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/555632/9fb45609-f1b4-4fec-c70e-a0340103ea6c.png)
# お気に入り登録画面作成
“`php:index.blade.php
関連する記事
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関連のことを調べてみた