PHP関連のことを調べてみた2022年08月31日

PHP関連のことを調べてみた2022年08月31日

Python,Ruby,PHP,Java,JavaScript,Perlのプログラミング言語の比較

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,Perlのプログラミング言語の比較です。

# 2022年版

## 基本文法

https://qiita.com/yuki_kimoto/items/a11a1095fc24be590fce

## 入門

https://qiita.com/yuki_kimoto/items/00aaab90f31194a5de74

## インストール

https://qiita.com/yuki_kimoto/items/7c2f1be70d68065338a4

## 変数

https://qiita.com/yuki_kimoto/items/631537a6e7eb58f251cf

## 文字列処理

https://qiita.com/yuki_kimoto/items/3b8062c42c0c12cb3db7

## 条件分岐

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlの多次元データ構造の比較

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,Perlの多次元データ構造の比較

# Python

https://qiita.com/ko0821/items/4c8a557ec88f2a10bd55

# Ruby

https://qiita.com/vzvu3k6k/items/1705c7f4b29c08787ea0

# PHP

https://qiita.com/shuntaro_tamura/items/784cfd61f355516dfff0

# Java

https://qiita.com/panda-chibi/items/e57799c047be69fe5b79

# JavaScript

https://qiita.com/Stack_up_Rising/items/cb71842d7c3510daf9f0

# Perl

https://per

元記事を表示

php-alpine 3.16でiconvを利用する

# はじめに
alpine3.13から3.16にアップデートする際にハマったので備忘録を作成。

alpine3.13ではiconvに不具合がありソースからインストールしていた。
https://blog.bagooon.com/?p=1516

“`
RUN apk add –no-cache –virtual .build-deps \
make \
gcc \
g++ \
&& curl -SL http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz | tar -xz -C ~/ \
&& rm /usr/bin/iconv \
&& mv ~/libiconv-1.15 ~/libiconv \
&& ~/libiconv/configure –prefix=/usr/bin \
&& make \
&& make install \
&& rm -Rf ~/libiconv \
&& apk del

元記事を表示

【Laravel】Controllerのコンストラクタではuserが取れない

# ユーザーが取れない!

“`php:HogeController.php
public function __construct()
{
$user = Auth::user(); // $userがnull
}
“`

コントローラのコンストラクタでユーザーを取ってこようとするとnullが帰ってきます。これはmiddlewareをまだ通っていないからだそうです。

これを回避するには[コントローラミドルウェア](https://readouble.com/laravel/8.x/ja/controllers.html#:~:text=%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82-,%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%A9%E3%83%9F%E3%83%89%E3%83%AB%E3%82%A6%E3%82%A7%E3%82%A2,-%E3%83%9F

元記事を表示

依存パッケージが古いけど最新の依存パッケージに依存しているパッケージをcomposerで管理したい

(タイトルがややこしくてすみません)

Packagistに公開されているライブラリ(以下somepackage)をインストールしようとしたところ、既存のライブラリ(以下requiredpackage)に依存しており、そのバージョンが古いために以下somepackageの最新バージョンを入れることができないということがありました。
requiredpackageは既に複数のファイルで使用しており、バージョンアップがすぐにはできない状況でした。

そこでsomepackageをサブモジュール化して、別の`composer.json`で管理するという戦略を取ったのでその内容を紹介します。

#### 環境
“`
# composer -V
Composer version 1.10.22 2021-04-27 13:10:45

# php -v
PHP 7.4.7 (cli) (built: Jun 11 2020 18:41:17) ( NTS )

# php artisan –version
Laravel Framework 6.18.35
“`

#### 状況の整理
s

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlの連想配列の比較

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,Perlの連想配列の比較

# Python

https://qiita.com/hz1_d/items/407dd13f90a8a4533d23

# Ruby

https://qiita.com/ryouya3948/items/5ea2049abfd92eb1ded7

# PHP

https://qiita.com/shizen-shin/items/8383e27c7cf16c0ccb4a

# Java

https://qiita.com/taropon_wwwww/items/95477174ac16287c9744

# JavaScript

https://qiita.com/yrn03m/items/87e223acc6e733b50429

# Perl

https://perlzemi.com/blog/

元記事を表示

laravelでPHPUnitを使ってテストをする

# 前書き
今回は作成中のポートフォリオの処理にミスがないか、確認するためのテストの作成を行いました。

# 環境

https://qiita.com/ucan-lab/items/56c9dc3cf2e6762672f4

上記記事に準じて環境構築を行っています、

# 実現したいこと
・各コントローラーの処理のテストをしたい。
→リソースコントローラにあたる7つのメソッド(index,edit,create,show,store,delete,update)と画像登録のテスト

# 対応方法
①事前設定

・新しくテストを作成します
“`
php artisan make:test テスト名
“`

–unitコマンドをつけると、tests/Unitディレクトリに、
つけないとtests/Featureディレクトリにテストが作成されます。

Featureテストは、小さい単位(今回は各コントローラのメソッド)が対象になります。
Unitテストは、アプリケーションを利用しないため、Eloquentのメソッドが使用できない等の制約がありますが、テストの実行が軽いです。

モデル

元記事を表示

【PHP】implementsとextendsの違い

implementsってなんぞや?extendsしか知らんぞ?ってなったので調べてみました。

## TL;DR
* implementsはインターフェイスを使いたい時の演算子
* extendsはオブジェクトを継承したい時の演算子

## implements
implementsはインターフェイスを使いたい時の演算子です。

https://www.php.net/manual/ja/language.oop5.interfaces.php

### インターフェイスとは?
> クラスが実装する必要があるメソッドを指定するコード

そのクラスに実装しないといけないメソッドをまとめた、パッケージみたいなものです。
複数のファイル(クラス)を作成する際に、決まったメソッドを実装してほしい時に使えます。

#### 例)
##### ▼インターフェイス
“`php

元記事を表示

【PHP】ランダムな値を生成する

今回はランダムな数字を取得する方法について、主にrandメソッドについて解説します。

## ランダムな数値
はじめに、1から100までの中でランダムな数値が作成してみます。
引数に最小値と最大値を渡すことで、範囲を指定することが可能です。

“`php
$random_number = rand(1, 100);
“`

奇数や偶数の乱数を生成したいときは次のようにします。

“`php
$random_number = rand(1, 50)*2; //1から100までの中の偶数

$random_number = rand(1, 50)*2-1; //1から99までの中の奇数
“`

## 配列の中のランダムな値
数値以外の指定した配列の中からランダムに取り出すときは以下のようにするといいでしょう。

“`php
$hash = array(‘田中さん’, ‘山本さん’, ‘高橋さん’,’鈴木さん’);
$key = array_rand($hash);
$random_person = $hash[$key];
“`

## ランダムな文字列
一文字ずつラ

元記事を表示

Guzzleを使用してSSLクライアント証明書(p12)を送る

# はじめに
やりたいことは外部サービスのAPIを叩きたい!
APIトークンとクライアント証明書(p12形式)とパスワード渡すから認証してね。ってことなのでやっていく
# 実際のコード
“`php
private function getData($verification_token)
{
$token = env(‘API_TOKEN’); // Authorizationヘッダーに指定するBearerトークン
$ssl_pass = env(‘SSL_PASS’); // 証明書のパスワード
$ssl_path = storage_path(‘app/private/test/ssl_file’); // クライアント証明書を配置した場所
$headers = [
‘Authorization’ => ‘Bearer ‘ . $token,
‘Content-Type’ => ‘application/json’,
];
$ba

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlの配列の比較

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,Perlの配列の比較

# Python

https://qiita.com/gouwan/items/c83b47ce1b7c77cce7c5

# Ruby

https://qiita.com/may88seiji/items/ce9396a4c267a3d449ae

# PHP

https://qiita.com/tokutoku393/items/ea2a61765eda1dee8f2e

# Java

https://qiita.com/sentral1110728/items/532de46714b7215a2e99

# JavaScript

https://qiita.com/takeshisakuma/items/b23b1a748098f30e2ff2

# Perl

https://perlzemi.co

元記事を表示

【Laravel】ViewでのErrorException count()への対処

# ErrorException count(): Parameter must be an array or an object that implements Countable

某アカデミーでTwitterクローンを作っている際に発生しました。
#### 結論:count()の引数にカウントできないものを入れている。
結論から言うと、私の場合はcount()の引数にBelongsToMany, HasMany等のクラスのオブジェクトを入れていたことが原因でした。
それらをget(),first(),pagenate()などでCollectionクラスにしてやることでcount()できるようになりました。

Controller
“`diff_php:app/Http/Controllers/UsersController.php
class UsersController extends Controller
{
/**
* ユーザのお気に入り一覧ページを表示するアクション。
*
* @param $id ユーザのid
*

元記事を表示

ポートフォリオ「ToDoリストアプリ」

# 初めに
はじめまして。
今回は、Webアプリ開発の基礎のアウトプットを兼ねて、作成致しましたのでご紹介いたします。
何かアドバイス・コメント等ございましたらコメント欄に宜しくお願い致します。
(2022.8.4現在)

# 目的
・フレームワークを使用せず、素のPHPで開発する。
・MVCモデルを利用した開発
・システムの動きをイメージングできるようになるため(現在の仕事では、開発部分に携わることが少ないため)

# ポートフォリオの概要
一般的なAppleのリマインダーのようなシンプルにタスクが管理できるアプリを想定しております。
また、サイトの基本機能であるCRUDの実装し、どの端末でもアクセスできるようにレスポンシブデザイン
となっております。総作製時間は、PHPの勉強も含め90H程度です。

# ポートフォリオの機能
### ■機能一覧
・タスク一覧表示
・完了タスクの一覧表示
・タスクの新規作成
・タスクの完了処理
・タスクの削除処理
・完了タスクの復元処理
・タスクの詳細内容編集機能
・セキュリティ対策(SQLインジェクション・XSS対策)

### ■使用している技

元記事を表示

Uninitialized string offsetとは(PHPのエラー)

Uninitialized string offsetとは、文字列型の変数に対して、存在しないキー名を呼び出したときに発生するエラー。
(例)
“`PHP
$a = ‘PHPを勉強中です。’;
echo $a[100];
“`
この場合、Uninitialized string offset: 100 というエラーが出る。

# 参考文献
PHP | Uninitialized string offset エラーの原因と修正案
https://1-notes.com/php-error-uninitialized-string-offset/

元記事を表示

PHP で GCP を利用する際の認証設定

PHP から GCP を利用するときの credentials の設定について調べてみると「サーバーの環境変数に設定しましょう」という記事が見つかる。
必ずしもサーバーの環境変数を設定できる環境とは限らないので、今回は別の方法も調べてみた。

基本的には [githubの公式](https://github.com/googleapis/google-cloud-php#authentication) や、 [AUTHENTICATION.md](https://github.com/googleapis/google-cloud-php/blob/main/AUTHENTICATION.md)に書いてある。

## putenv を利用する
サーバーを直接操作できないなら PHP から操作すればいいじゃない、でお馴染み `putenv` さんの登場。
動作としてはサーバーの環境変数を設定したのと同じになる。
絶対パスで設定する。

“`php
putenv(‘GOOGLE_APPLICATION_CREDENTIALS=/path/to/credentials.json’);

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlの繰り返し構文の比較

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,Perlの繰り返し構文の比較

# Python

https://qiita.com/atsui-ocha/items/5b8e4f973b36e78fdaf1

# Ruby

https://qiita.com/beanzou/items/6231d3d0a926765ddbb4

# PHP

https://qiita.com/rana_kualu/items/0abd2b6f69527b0b4b92

# Java

https://qiita.com/morioheisei/items/e686e33b60c6a60e87f0

# JavaScript

https://qiita.com/tetsuyakojima/items/fd63f91a4e34d6bad28b

# Perl

https://perlzemi.c

元記事を表示

wp に関するサイト(それ以外にも)

wp に関するものと、それ以外諸々
自分用なので重複あるかもしれません

* WordPressで特定の投稿タイプのみエディターを丸ごと無効化する方法
> https://dezanari.com/wordpress-disable-editor/

* WordPressのコメント(comments.php)をカスタマイズする
> https://bambooworks.co/wordpress-comments-customize/

* CSSのflexboxで最後の1つだけ右寄せ、または最初の1つだけ左寄せにする方法
> https://wemo.tech/2320

* コメント欄を追加する手順を解説
> https://go-journey.club/archives/2554

* wp membership plugin
> https://rocketgeek.com/

* wp redirect
>https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%

元記事を表示

AtCoder160(ABC)の B問題を解いた(PHP)

問題文の要点:
高橋君が持っている “500 円硬貨 1 枚につき 1000″、5 円硬貨 1 枚につき 5 の 嬉しさ を得ます。
高橋君の嬉しさが最大になるように両替したとき、高橋君の嬉しさはいくらになりますか?

“`PHP
= 500) {
$fiveHundredCount = floor($num / 500); //500円玉の枚数を求める
$num = $num – (500 * $fiveHundredCount);/*標準入力の数値から500円の枚数分を引き、
残りの金額を出す(500円玉を最大枚数分使う)。*/
$fiveCount = floor($num / 5); //5円

元記事を表示

PHP 関数の引数 2種類のnullableな型(null許容型)の宣言を両方とも書く

## デフォルト値を設定するnull許容型の宣言
PHP7.0から使える デフォルト値にnullを指定する
引数にnullを渡してもエラーにならない
“`php
function showName(string $name = null) {
var_dump($name);
}
“`

## 型名の前に?を書くnull許容型の宣言
PHP7.1から使える 引数の型名の前に?を書く
デフォルト値が無いケースでは、エラーが発生する
“`php
function showName(?string $name) {
var_dump($name);
}
“`

## null許容型の宣言を両方とも書く
PHP7.1から デフォルト値にnullを指定し、引数の型名の前に?を書く
両方とも記述して、デフォルト値が無いケースでも、エラーが発生しなくなる
“`php
function showName(?string $name = null) {
var_dump($name);
}
“`

元記事を表示

オリジナルのyoutubeページを作成してみました

# 概要
[「なつかしの曲(ポータル)」](https://tecoyan.blogspot.com/2020/05/0.html#btn_cntrl)は、[youtubeページ](https://www.youtube.com/watch?v=bFQyYwWV58M&t=106s)のオリジナルページです。
特長としては、国内、海外の昔なつかしい歌や曲を再生リストにして再生することができます。
再生リストはGoogleブログとサーバーのデータベースに保存しています。
このサイトのブログ記事を開くと月日別の投稿記事で再生リストの再生が始まります。
また、リスト選択でデータベースの再生リストを選択して再生できます。
# ページ詳細
このページは、基本要素とオプション要素から構成されています。以下、順に追って説明いたします。

## (1) 基本要素
このページの基本要素は、プレーヤーと再生リストです。
ページを開くと再生リストの先頭から再生がスタートします。あとは、ほったらかしにしておくと連続してリストを再生します。
イージーリスニングサイトをイメージしています。

## (2) オプショ

元記事を表示

OTHERカテゴリの最新記事