- 1. クラスとインスタンス PHP
- 2. 【実験】a.phpでc.phpをrequireするだけでb.phpはc.phpをrequireなしで使えるの?
- 3. PHP_クラスについて
- 4. 【メモ】PHPのuse関連について学ぶ
- 5. PHPのコード整形と静的解析をpre-commitでコミット時に自動で実行したい
- 6. 【Laravel】都道府県プルダウン&キーワード検索機能【クエリビルダ/ローカルスコープ/ページネーション】
- 7. Git ローカルのブランチをリモートリポジトリへpush(n回目(n>=2))
- 8. 【Laravel】HerokuでAWS S3画像アップロード
- 9. 【PHP】TBを作成 ※n列で改行して余りはハイフン
- 10. 【カンタン】PHPで改行を反映させる
- 11. 実務4年目のWEBエンジニアが「PHP本格入門(上)」を読んで学んだこと 10選
- 12. API(‘ω’)?
- 13. [Drupal]PHPUnitで基本のカーネルテスト
- 14. Laravelでstorage配下の画像削除
- 15. PHP7技術者認定初級試験に出る$_SERVER配列
- 16. 4/18_オブジェクト指向
- 17. WordPressでLPを用意したいときのTips
- 18. MySQLでデータを一括削除してidを1から振りなおす
- 19. LaravelとVue.jsで「いいね」機能を作る
- 20. PHP(Laravel) constructを使ったクラスについて解説
クラスとインスタンス PHP
## クラス
クラスとは設計図!
その設計図には、「変数」と「関数」が書いてある!
変数で設定を決めて、関数で何するかを決めている!## インスタンス
クラスという設計図を元にして、実際に作っていくこと!
家を建てるイメージをすればOK!設計図を書いてから、それを元に家を建てていく!
インスタンスは複数作ってOK!設計図があれば家は複数建てられる!### クラスとインスタンスの書き方
“`php:書き方
変数名 = 値;
$インスタンス名->関数名();
?>
“`
– `$インスタンス名 = new クラス名();` でスタートするのは決まり!
– `$インスタンス名->変数名 = 値;` でクラスで設定した変数名の値を決めている!
※変数名に `$` は書かない!
`->` はアロー演算子!変数
【実験】a.phpでc.phpをrequireするだけでb.phpはc.phpをrequireなしで使えるの?
今回はPHPの仕様としてrequireを一回どこかで入れれば他のファイルはあえてrequireを使わなくてもいいのか疑問があったので調査してみました。
もう少し具体的に言うとa.phpでc.phpをrequireするだけでb.phpはc.phpをrequireなしで使えるの?という疑問を検証します。# 実験準備
検証のためにa,b,cのファイルをWEBサーバ内の同じディレクトリに用意します。“`php:a.php
#c.phpを読み込んだ後インスタンス化
#そのあとb.phpを読み込んで返却してもらった文字列を表示する。
“`
“`php:b.php
#a.phpから呼び出されたらc.phpに定義してあるcクラスをインスタンス化する。
#b.phpではc.phpをrequireせずとも問題なく実行できるか確認
#実行できれば成功を返却
“`
PHP_クラスについて
require・include→ともに外部ファイルの読み込み時に使用
require→読み込み失敗時、処理を停止
include→読み込み失敗時、処理は継続php
htmlspecialcharsは配列には使えない—
「コマンド+f」で文字検索
—
php
返り値に多次元配列を使用することができるのか?
【メモ】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/2685fe51f7afe5https://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 Bgit 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を作成 ※n列で改行して余りはハイフン
# TBを作成 ※4列で改行して余りはハイフン
## パターン1
### PHP
“`PHP
【カンタン】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/3f21c92121aa125807b4https://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\IPHP7技術者認定初級試験に出る$_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’);
//紐づくユーザーが削除(退会等)されたらいいねも削除
$taPHP(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を呼び出すといった構成にな
関連する記事
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関連のことを調べてみた