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

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

【メモ】PHPのuse関連について学ぶ

phpで外部ファイルを使用する方法は2種類ある。(require,includeでrequireの方がよく見かけるし、更に言うとrequire_onceの方がよく見かける。)
使用する外部ファイルの中でどの機能を使用するかを指定できるのがuse。

# require
ファイルの読み込みに使う。
`require “ファイルのパス”;`と`require(“ファイルのパス”);`どっちでもいい。
requireで指定するのはphpファイルそのもの。
`require “lib/test2.php”;`
再読込みが行われて、変数などが再定義されると困る場合は、require_onceを使う。要するに安全だからという理由でよく使われているよ。
ファイルが読み込めないとエラーになる。

# include
ファイルの読み込みに使う。
>includeは、指定したファイルを読み込むという点では、requireと同じ。ファイルが読み込めなかった場合は、警告を出すのみで、処理は継続する。include_onceを使用すると、既に読み込まれている場合は再読込みを行わない。用途はrequire_onc

元記事を表示

PHPのコード整形と静的解析をpre-commitでコミット時に自動で実行したい

# 実現したいこと
Gitのpre-commitフックを使って、コミット時にPHPファイルのコード整形と静的解析が実行されるようにしたい。

# 問題点
commit時にpre-commitに登録したスクリプトは動き、コード整形はされるがコミットができない。
途中でエラーが発生している。

# 参考にしたサイト
https://zenn.dev/takuyanagai0213/articles/2685fe51f7afe5

https://qiita.com/Sho2010@github/items/eae44da09aa279e7e598

# 必要なパッケージ
* php-cs-fixer(コード整形)
* phpmd(静的解析)
それぞれのパッケージについては解説しません。
https://zenn.dev/takuyanagai0213/articles/2685fe51f7afe5#%E9%9D%99%E7%9A%84%E8%A7%A3%E6%9E%90%E3%83%84%E3%83%BC%E3%83%AB%E5%B0%8E%E5%85%A5
導入に関しては上記を参考にし

元記事を表示

【Laravel】都道府県プルダウン&キーワード検索機能【クエリビルダ/ローカルスコープ/ページネーション】

# 1.はじめに
大阪のLaravel初学者サウナーこと、kazumakishimoto([@kazuma_dev](https://twitter.com/kazuma_dev))です!
Laravelでクエリビルダ/ローカルスコープ/ページネーションを使用した、都道府県プルダウン&キーワード検索機能の解説です!

## 1-1.使用画像のイメージ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/687994/a0634381-2ce7-a80e-2825-01d3cf4a9e5f.png)

## 1-2.事前準備
### configフォルダ
“`php:config/pref.php
‘未選択’,
‘1’ => ‘北海道’,
‘2’ => ‘青森県’,
‘3’ => ‘岩手県’,
‘4’ => ‘宮城県’,
‘5’ => ‘秋田県’,
‘6’ => ‘山形県’,
‘7’

元記事を表示

Git ローカルのブランチをリモートリポジトリへpush(n回目(n>=2))

## push時のターミナル操作

Aという名前のローカルブランチをリモートのBブランチにpushしたい

git checkout A
git pull origin B

git add .
git commit -m “コメント”

git push origin A

——————–

※ちなみにAがadd_trainingという名前のブランチだった場合、最初の方は

git checkout add_training
git pull origin training

ローカルをadd_trainingにcheckoutしてから、リモートのtraining をpullするのが正解!
origin/training はリモートのtrainingの履歴を持ってきたローカルにあるブランチ。
git pull origin training :git fetch origin training でorigin/training へとリモートのtrainingの履歴を持ってきて、git merge origin/trainingでその履歴をローカルのadd_t

元記事を表示

【Laravel】HerokuでAWS S3画像アップロード

# 1.はじめに
大阪のLaravel初学者サウナーこと、kazumakishimoto([@kazuma_dev](https://twitter.com/kazuma_dev))です!
LaravelでAWS S3へ画像アップロードする方法について解説します!(インフラはEC2ではなくHeroku)

## 1-1.使用画像のイメージ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/687994/5c27dada-31e4-fb17-6dcd-4f8d25fb6d38.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/687994/efeabd07-c6f2-92bc-d69e-5db8920a643a.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/687994/7b

元記事を表示

【PHP】TBを作成 ※4列で改行して余りはハイフン

# TBを作成 ※4列で改行して余りはハイフン

## パターン1
“`PHP

$list){ ?>
0)echo ‘‘; ?>



‘,4 – $td_cnt % 4); unset($td_cnt);?>

ポケモン

“`
![image.png](http

元記事を表示

【カンタン】PHPで改行を反映させる

# [改行させて登録した文章を反映させる](#-改行させて登録した文章を反映させる)

こんな感じで改行付きでコメントを登録
![スクリーンショット (11).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920917/dab42642-33b7-b240-adb3-dc3825480eb9.png)

こんな感じでちゃんと改行させて出力
![スクリーンショット (12).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920917/40d61b1b-8df5-ac4f-9610-125fe3b6d395.png)

例えばLaravelで普通に出力
これだと改行は反映されない
“`app.php

{{$user->comment}}

“`

こう書く
“`app.php

{!! nl2br($user->comment) !!}

元記事を表示

実務4年目のWEBエンジニアが「PHP本格入門(上)」を読んで学んだこと 10選

## はじめに

私は**実務4年目のWEB系サーバーサイドエンジニア**です。

普段は**PHP**(CakePHP, Laravel)を使用し、WEBサービスの開発業務を行なっています。

そんな私がなぜ今さら「**PHP本格入門(上)**(以下 本書)」を手に取ったかというと、「自分は基礎ができていないのではないか」という漠然とした不安を持つようになったためです。

私は独学でエンジニアになったので、体系的に開発を学んだわけではありません。

PHPの基本的な構文は理解していますし、関数も使えます。

フレームワークも使えるようになりました。

次のステップとして、より技術力を高めるためにまずは基礎を勉強しなおそうと考えました。

以上、本書を手に取った経緯でした。

それでは、ここから本書を読んで学んだこと(=これまで知らなかったこと)をお伝えします。

※ この記事は「新人プログラマ応援 – みんなで新人を育てよう!」イベントの参加記事です。
https://qiita.com/official-events/3f21c92121aa125807b4

https://ww

元記事を表示

API(‘ω’)?

# [APIとは](#-APIとは)
調べるとだいたい「アプリケーションなんたらかんたら」の略で~と出てきますが、おそらく私レベルの初学者が知りたいのはそこじゃない。
正式名を知りたくて調べたのではない。
APIを使って何が出来るかイメージが付かない。

# [両想いってこと](#-両想いってこと)
|                                           
|:-:|
||

要するにサービスを使いたい側居て、そしてサービスを使って欲しい側が居て成り立っている。
ではどのようにしてそれが成立しているのか?

基本的にAPIは「リクエスト(要求)」と「レスポンス(応答)」で構成されます

元記事を表示

[Drupal]PHPUnitで基本のカーネルテスト

## カーネルテストとは
DrupalのPHPUnitのテストには主にユニットテスト、カーネルテスト、ファンクショナルテストというものがあります。

![スクリーンショット 2022-04-19 8.12.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253501/0427df25-8c3a-80db-5f27-e46e9772f380.png)

ユニットテストはDrupalのブートストラップ無し状態で行うテストです。一番高速ですがDrupalのサービスクラスなどを呼び出す際にいわゆる「モック」を作らなくてはいけないというデメリットがあります。またユニットテストでDBに接続するのは(頑張ればできるけど)非推奨とされています。

ファンクショナルテストはいわゆるブラウザテストで、新しくインストールされたDrupalに対して仮想ブラウザからリクエストを送る形でテストを行います。DrupalのコアとDBが使えたりユーザー目線のテストができるという反面実行速度が遅いというデメリットがあります。

カー

元記事を表示

Laravelでstorage配下の画像削除

# [環境](#-環境)
* Laravel5.8
* PHP7.4
# [何をするか?](#-何をするか?)

LaravelによるWEBサービスで画像登録などを行うことも多いと思います。
* ユーザーのプロフィール画像
* 投稿コンテンツのサムネイル画像
* 商品画像etc…

そしてそれらはWEBサービス上で削除される可能性もあります。
ユーザーが退会したり、商品画像の変更や削除ですね。
その際にプロジェクト内の実際の画像も削除しないとプロジェクト内がユーザーやコンテンツが増えるたびに肥大化します。

それを防ぐために実際の画像も削除していきましょう。

コントローラー内はシンプルにアイテムを一つ取得してそれの画像を消す処理です。
“`
php artisan storage:link
“`
既に上記コードででシンボリックを貼ってる前提です。

“`Controller.php
namespace App\Http\Controllers;
use App\I

元記事を表示

PHP7技術者認定初級試験に出る$_SERVER配列

__PHPの$\_SERVER配列をPHP7初級に出る値だけでまとめました__
※$_SERVER内のkey=>value多い!全部覚えてられない!

$_SERVER配列とは連想配列で、“サーバー変数“と呼ばれています
$_SERVER[‘key’]でvalueが出ます

では早速はじめてのPHP(オライリー本)で出現するサーバー変数を見て行きます
これに載ってないのは出ないハズ

# 1.$_SERVER[‘PHP_SELF’]
オライリー様曰く、
__「現在のリクエストURLのパス名を保持します」__
らしい
つまり
http://うんたら.com/あーでも/こーでも.php
というURLにアクセスする場合、
$_SERVER[‘PHP_SELF’]は
/あーでも/こーでも.phpになる
サイトによっては現在実行しているURLのパス名部分と書いてあったりする
パス名が欲しいなら$_SERVER[‘SCRIPT_NAME’]が推薦されているらしい※テストに出るかは不明

# 2.$_SERVER[‘REQUEST_METHOD’]
オライリー様が仰るには
__「Webブラウ

元記事を表示

4/18_オブジェクト指向

## オブジェクト指向の三大要素

カプセル化
データと機能をまとめ、必要なものを提供
継承
クラスからデータと機能を受け継ぐ
ポリモーフィズム
同じ命令でも異なる動きを持たせる

## アクセス修飾子
アクセス権を指定するもの
①private(自クラス内でのみアクセス可能)
②protected(自クラスか継承クラスからのみアクセス可能)
③public(どこからでもアクセス可能。これがdefault)

## コンストラクタ
インスタンス化した時(Newで呼び出された時)、必ず最初に起動させておきたい処理

## PHPにおける「$_GET」について
$_GETはHTTPGETメソッドで送信され、URLパラメータとして送られてきた値を取得する変数

## プレースホルダーとは
後から値を設定するときに使う。(SQLインジェクションを防ぐ)

元記事を表示

WordPressでLPを用意したいときのTips

CSS何もわからないマンです。

WordPressで会社のHP運営している方々はいっぱいいらっしゃると思いますが、だいたい困ることが、あとからページを追加しようとしたときに、header.php、footer.phpやcss、jsがぐちゃぐちゃになることが多いかなと思います。

いつかリファクタ、または作り直すとかすると思いますが、大体が急ぎーとか来週にはあげたいーとか自分の仕事が忙し〜だと思うので、なかなか手がつけられずスパゲティな感じになるんじゃないでしょうか。

僕もまだまだですが、最初からこういうの設計にしておけばよかったなってのがWordPressにはあるので、今回はLPを題にして自分のためにもメモしていこうと思います。

# 固定ページのtemplateを用意する

同じpage.phpを使いますと条件分岐地獄がまっていますので、できれば分離したいです。

WordPressには固定ページのテンプレートを用意することができるので、分けてあげましょう。

“`bash
$ cp page.php page-lp.php
“`

管理画面から、page-lp.phpを認識

元記事を表示

MySQLでデータを一括削除してidを1から振りなおす

# [やる事](#-やる事)
データベースのテーブル内の情報を有無を言わさず全削除。そしてidを1から振り直します。
外部キー制約付いてると一括削除できません。

“`
//一括削除
truncate table テーブル名;
“`

“`
//idを1から振りなおす
ALTER TABLE テーブル名 AUTO_INCREMENT =1;
“`
ていう感じです。

元記事を表示

LaravelとVue.jsで「いいね」機能を作る

# [開発環境](#-開発環境)
* Laravel5.8
* Vue.js 2系
# [完成イメージ](#-完成イメージ)
メルカリとかみたいにユーザーが投稿したアイテムがあり、その詳細画面で不特定多数のユーザーが
いいね出来る感じ。
# [Modelとマイグレーションを作る](#-Modelを作る)
“`
$ php artisan make:model Like -m
“`

マイグレーションは以下の通り。
“`migration.php
bigIncrements(‘id’);
//紐づくユーザーが削除(退会等)されたらいいねも削除
$ta

元記事を表示

PHP(Laravel) constructを使ったクラスについて解説

## 今回やること

今回は、constructを使ったクラスについて解説をしていく。

## STEP1

“`
name = $test2;
}
function show(){
echo $this->name;
}
}
“`

今回の場合は、testがインスタンス化されたら、__constructが発動して、$this(クラスthisのこと)の中にあるnameに、引数の値を入れるという処理。

そして、showで、nameの値を表示するといった処理が書かれている。

## STEP2

実際に表示をする作業に入る。

“`
$test4 = new test(“aaa”);
$test4->show();
?>
“`

test4で、クラスtestをインスタンスして、引数として、aaaを入れている。

そして、test4の中のshowを呼び出すといった構成にな

元記事を表示

Laravel「くっ。X-Serverのエントリポイントはpublic_htmlだと…」

Laravel「エントリポイント変えたろ」

“`php:app/Providers/AppServiceProvider.php
public function register()
{
// set the public path to this directory
$this->app->bind(‘path.public’, function() {
return base_path().’/public_html’;
});
}
“`

“`php:server.php
// require_once __DIR__.’/public/index.php’;
if ($uri !== ‘/’ && file_exists(__DIR__.’/public_html’.$uri)) {
return false;
}

require_once __DIR__.’/public_html/index.php’;
“`

“`php:webpack.mix.js
mix.setPublicPath(‘public_html/’)

元記事を表示

Composer でプライベートリポジトリを使っている時の GitHub Actions 設定方法

Composer でプライベートリポジトリを require している場合、GitHub Actions で普通に

“`yaml
– name: Install dependencies
run: composer install –prefer-dist –no-progress
“`

としていると認証エラーが発生します。(当然ですよね)

“`
Failed to clone the git@github.com:foo/bar.git repository,
try running in interactive mode so that you can enter your GitHub credentials
“`

これを解決するためには、プライベートリポジトリを利用するためのアクセストークンを渡してあげる必要があります。アクセストークンを Actions に書いてコミットするなんてことは絶対しちゃいけないので、secret を利用します。なので全体では次のような手順が必要です。

1. GitHub のアクセストークンを生成する
2. リポジトリの

元記事を表示

PHP(Laravel) クラスを扱おう

## 今回やること

今回は、自作クラスの作成から、運用までをわかりやすく解説していく。

## STEP1
まず、Classを作成して、引数と処理内容と戻り値を記入する。

“`
class test{
function test1($test2){
$test3 = $test2 * 2;
return $test3;
}
}
“`

今回の場合は、classであるtestの中に、test1という名前の関数を作り、引数を2倍の値にして戻り値として返すという内容の処理を持たせている。

## STEP2

classを実際に使う作業。

“`
$test4 = new test();

$test5 = $test4->test1(87);
echo $test5;
“`

test4の中に、classの内容をコピーして入れる(インスタンス)

そして、test5で、コピーしたtest4の中にある関数test1を起動して、引数として87を指定する。

結果として、2倍の値である174が値として返される。

元記事を表示

OTHERカテゴリの最新記事