- 1. PHPerがRuby(Ruby on Rails)を約3年経験した結果
- 2. Laravelでcontrollerから受け取った変数をViewで表示する
- 3. 【PHP】PHPで外部のサイトを読み込む方法
- 4. PHPの具体例で理解する「結合度」
- 5. 【PHP】マイナーフレームワーク「Flow」を試してみる~認可編~
- 6. PHP ストリーム型のファイルの操作
- 7. PHP ファイル操作の基本(ファイル名型) 振り返り
- 8. [Laravel] Windowsで文字化けしないCSVのエクスポート機能を作ろうとしたら、意外と詰まった話
- 9. PHP(7.1.33) 学習 備忘録 – isset, is_null, empty
- 10. PHPで”Hello, World!”を表示させる方法を詳しく解説!初心者向けの手順とコード例あり
- 11. 【PHP】PHPの開発環境、XAMPPの使い方
- 12. 【PHP】Postリクエストを受取り、Bodyの内容を取得する
- 13. 【PHP】PHPで3の倍数と3がつく数の時にだけアホになるプログラム書いてみた(1から200まで)
- 14. 【PHP】(多分)楽しい言語、PHP
- 15. PHP(7.1.33) 学習 備忘録1
- 16. PHPでファイルのアップロード
- 17. 色々な言語の Dictionary のキーの型の扱いについて調べてみた
- 18. 【Laravel】Swagger UIのドキュメントをLaravelのソースの外に出す
- 19. PHPのselfと$thisの違い
- 20. 【PHP8.4】PUTやPATCHでもリクエストボディを簡単に取得できるようになる
PHPerがRuby(Ruby on Rails)を約3年経験した結果
# はじめに
Hubbleでバックエンドエンジニアをしている @power3812 です。オブジェクト指向大好きマンで、神クラスを作れないかと模索の日々です:innocent:今回はHubbleに転職して約3年経つので、振り返りの意味も込めてPHPerで一切Rubyを触ったことがなかった僕が、約3年Rubyを使った所感を書こうと思います!
# 筆者のサマリ
大学は電子情報で大学院は技術経営を学んでしました。大学院は21卒なので21卒で就活をして、サマーインターンでWeb開発を知り、PHPと出会い、Web開発の沼にハマりました。しかし、大学院にいるよりも早く実践を積みたいと、大学院を中退し、20卒としてソーシャルゲーム会社に就職しました。
ソーシャルゲームということで、PHPをそのまま経験、その後受託系の会社に転職し、そこにはPHPerKaigiの運営にも携わっている方にPHPの真髄を叩き込まれました。その後、自分が完全未経験のRubyで開発しているHubbleに入社しました。
# 結論
RubyもPHPも本質はなにも変わらないです。
これはその通りと言えば、その通りのこ
Laravelでcontrollerから受け取った変数をViewで表示する
4月からエンジニアとして働く初心者です。
今回はLaravelでView(bladeファイル)にControllerから受け取った変数の中身を表示する方法をまとめてみます。
## ControllerからViewに変数を渡す
### ①viewメソッドの第2引数
– 単一の変数を渡す
“`php
public function sample() {
$value = 5;
return view( ‘sample.index’ , [ ‘value’ => $value ]); // [ ‘view側で使うときの配列/変数名’ => $設定した配列/変数名 ]の形。
}
“`
– 第2引数で渡すとき、一般には連想配列(`[ ‘キー’ => 値 ]` )にする
– 渡す変数は配列でも良い
“`php
public function sample() {
$fruits = array(
‘tomato’ => 100,
‘apple’ => 150,
‘banana’ => 50,
);
r
【PHP】PHPで外部のサイトを読み込む方法
# はじめに
こんにちは! 中学2年生のWardHamamatsu67です! 今回は、PHPで外部のサイトを読み込む方法について説明したいと思います。
# コード
“`php
“`
こんな感じです。結構短めにできます。なお、今回読み込むサイトは一昨日紹介した気持ち悪い信号機のページです。
# 説明
“`php
$url = “file:///C:/xampp/htdocs/traffic_light.html”;
“`
この部分では、**$url**という変数を指定し、その中に、読み込みたいサイトのアドレスバーに書かれているURLを書きます。
“`php
$output = file_get_contents($url);
“`
この部分では、**$output**という変数を指定し、先程指定された$urlのデータ
PHPの具体例で理解する「結合度」
## そもそも結合度とは
– 結合度はモジュール間の依存性を表す指標。
– 結合度は低ければ低いほどよい。
– 依存性が少なくなり、修正・拡張がしやすくなるため。
– 各モジュールが独立して、再利用しやすくなるため。## 結合度には7つの種類が存在する。
![結合度高画質.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3660857/a7309ce2-c7be-17e5-f0c6-c84e12f1fe37.jpeg)## 7種類の結合度の詳細
### 1 : 内部結合(Content coupling)
あるクラスが別のクラスの内部構造や状態に直接依存する結合。
#### 内部結合しているコード
“` PHP
class User
{
public $is_admin = false;
}class Admin
{
public function promote(User $user)
{
$user->is_admin = tr
【PHP】マイナーフレームワーク「Flow」を試してみる~認可編~
# 初めに
前回は[こちら](https://qiita.com/nnhkrnk/items/2ab36bd082385f62cd61)の記事で、Flowにおける認証処理(Authentication)について書きました。
今回はFlowで認可処理(Authorization)を実装してみましょう。# 注意
:::note warn
この記事は[前回の記事](https://qiita.com/nnhkrnk/items/2ab36bd082385f62cd61)の続きになっています。
まだご覧になってない方はそちらからご覧ください。
:::# 実際に作ってみる
早速作ってみましょう。
前回はログインしたらTOP画面に遷移するという処理を実装しましたが、ログインしてなくても遷移が可能になっていました。
今回は、**TOP画面をログイン状態でないと開けない**という設定を追加してみます。プロジェクト構成は以下です。
“`
Packages/
├ Application/
| └ Neos.Welcome/
| ├ Classes/
PHP ストリーム型のファイルの操作
# ストリーム型のファイルへの書き込み
参考: [fopen](https://www.php.net/manual/ja/function.fopen)
参考: [fwrite](https://www.php.net/manual/ja/function.fwrite.php)
参考: [fclose](https://www.php.net/manual/ja/function.fclose)– `fopen`, `fwrite`, `fclose` の3つセットで記述する
#### `.contact.dat`ファイルを作成しておく
#### `test.php`を作成及び編集
“`php:test.php
PHP ファイル操作の基本(ファイル名型) 振り返り
# テキストファイルの読み込み
#### ファイル名型 (ファイルを丸ごと操作する方法)
– PHPの標準関数 `file_get_contents`関数を使用してみる参考: [file_get_contents](https://www.php.net/manual/ja/function.file-get-contents)
`.contact.dat`ファイルを作成及び編集 `txt`でもよい
“`dat:contact.dat
あああ
いいい
ううう
“``test.php`を作成及び編集
“`php:test.php
[Laravel] Windowsで文字化けしないCSVのエクスポート機能を作ろうとしたら、意外と詰まった話
# はじめに
個人でシステム開発の仕事をしています。
管理画面を開発しているときに、Windowsのエクセルでも文字化けしないようなCSVインポート機能を実装しようとしたんですが、
SJIS変換してもBOMをつけてもなかなか解決できなかったので、その解決方法を備忘録として残しておこうと思います。## 開発環境
– php 8.2
– laravel 10
– docker# やりたいこと
header_1 | header_2 | header_2|
—— | —— | ——
body_a1 | body_a2 | body_a3|
body_b1 | body_b2 | body_b3|上のようなCSVをエクスポートし、macでもwindowsでも文字化けせずにCSVを表示したい。
:::note info
– windowsではexcelで開くことを想定しています。
– headerはソース内で定義し、bodyはMySQLから持ってきた値です。
:::# 試したこと
## SJIS-winに変換(うまくいかなかった)
まずは、単純にUTF-
PHP(7.1.33) 学習 備忘録 – isset, is_null, empty
とある案件でPHPを触れて、学んだことを書いておく。
# 変数チェック
変数を宣言・定義しているか、NULLかなどをTRUE,FALSEで返してくれる関数を調べたのでまとめておきます。
PHPの前提として、NULLと変数宣言をしただけのものは基本的に同じです。
“`php
$defNull = NULL;
$defOnly;
“`## is_null
https://www.php.net/manual/ja/function.is-null.php
:::note info
`is_int`や`is_string`など型ごとにチェックする関数があります。
:::– 変数が宣言されていない
– NULLで定義されているならば、`True`が返ってきます。
“`mermaid
flowchart LR
s([Start])
t([True])
f([False])
d+nn{未宣言
OR
NULL}
s –> d+nn –>|Yes| t
d+nn –>|No| f
“`ただし、未宣言の場合はおそらく*Notice*が出てくると思います。
PHPで”Hello, World!”を表示させる方法を詳しく解説!初心者向けの手順とコード例あり
PHPを利用して **`「Hello, World!」`** を表示する方法について詳しく説明します。この手順は、PHPを初めて学ぶ方や、基本的な構文を確認したい方に適しています。
まず、ブラウザで **`「Hello, World!」`** を表示するためのPHPコードを紹介します。以下の手順に従ってください。
## PHPファイルを作成する
まず、テキストエディタ「VScodeなど」を開き、新しいファイルを作成します。このファイルの拡張子は **`.php`** になります。例えば、 **`hello.php`** という名前で保存します。
## PHPコードを追加する
【PHP】PHPの開発環境、XAMPPの使い方
# はじめに
こんにちは! 中学2年生のWardHamamatsu67です! 今回は、プログラミング言語のPHPの開発環境であるXAMPPの使い方について説明したいと思います。
# What’s XAMPP??
XAMPPとは、先程も説明した通り、PHPの開発環境です。主にPHPのプログラムを実行するときに使います。たとえPHPのコードがきちんと書けていたとしても、XAMPPが正常に動いてなければ実行ができません。そのため、PHPをやる上で、XAMPPは必須なのです!!
# 使い方
先程、PHPをやる上でXAMPPは必須と言いましたが、XAMPPでやることは1つだけです。それはXAMPPにあるモジュールを動かすことです。やり方は、XAMPPを開いて、Actionsの下に「start」ボタンがあるのでそれを押します。しばらく待つとモジュールの色が緑色になります。そうなったら終わりです。以上!!![スクリーンショット 2024-03-27 203545.png](https://qiita-
【PHP】Postリクエストを受取り、Bodyの内容を取得する
## はじめに
最近PHPをはじめました。
HTTPのPostリクエストを受取り、Bodyの内容を取得する方法が分からず調べてみました。## 結論
下記コードで実現できました!**Version**
PHP:5.5.3
Cake:2.5.8“`PHP:
// POSTリクエスト以外はエラー
if (!$this->request->is(‘post’)) {
echo json_encode([“is_success” => false, “error” => “POSTリクエスト不使用”]);
return;
}// リクエストボディの内容を取得
$json = file_get_contents(‘php://input’);
$data = json_decode($json, true);// リクエストボディからuserIDを取得
$user_id = $data[‘user_id’];
“`## 詳細
ChatGPTに聞きながら詳細をまとめました。
【PHP】PHPで3の倍数と3がつく数の時にだけアホになるプログラム書いてみた(1から200まで)
# はじめに
こんにちは! 中学2年生のWardHamamatsu67です! 今回はプログラミング界で有名な、「世界のナベアツ」をPHPでやりたいと思います。本家は40までなのですが、今回は200までやります。
# コード
“`php
“;
} else {
echo $num.”
“;
}
}
?>
“`
結構短めに書くことができました。
# 解説
for文で$numという変数が1スタート200ゴールの範囲で1ずつ増えていく処理を書き、if文で$numを3で割ったときの余りが0になるか、$numに3がつけば、アホになり、それ以外は普通に$numの値を表示します。
# おわりに
意外と簡単にできました。「世界のナベアツ」は面白く、プログラミングの良い練習と
【PHP】(多分)楽しい言語、PHP
# はじめに
こんにちは! 中学2年生のWardHamamatsu67です! 今回は、最近自分がはまっているプログラミング言語、PHPについて話していきたいと思います。
# PHPの良さ
– 難易度が**低め!!**
– 文法が独特で**楽しい!!**
– 将来性が**高い!!**
## 難易度が低め!!
まず、PHPは難易度が結構低めです。それはPythonやJavaScriptといった、初心者にお勧めとされる言語に匹敵します。”Hello, world!”の表示も、条件分岐も、変数も、繰り返し処理もPHPなら短く書くことが可能です。Web開発を極めたい方はPHPの学習もお勧めします!!
## 文法が独特で楽しい!!
PHPの文法は他と比べて独特です。例えば、”Hello, world!”を表示するとき、Pythonなどの言語ならもちろん、**print**を使います。しかし、PH
PHP(7.1.33) 学習 備忘録1
とある案件でPHPを触れて、学んだことを書いておく。
# while-each
正式名称はわかりません。バージョンが上がると動かない場合があるので使っていたら修正したほうがよい。
~~(修正方法は未確認)~~
`foreach, list`で書き換えることができます。コメントに例があります。(YuneKichiさん、junerさんありがとうございます。)“`php
‘apple’,
2 => ‘banana’,
3 => ‘calotto’,
];while(list($key, $value)=each($req)) {
var_dump($key, $value);
}
?>
“`# コンストラクタ
phpの古い書き方です。修正してください的な注意が出てくると思います。バージョンが上がると使えないことがあります。
“`php
PHPでファイルのアップロード
# インストール
“`bash
wget https://gist.githubusercontent.com/GitHub30/d6960b85c73e6e5f20386fa665873183/raw/upload.php
“`“`php:upload.php
色々な言語の Dictionary のキーの型の扱いについて調べてみた
Dictionary や object のキーに複数の型を指定した場合、どういった扱いになるのかが非常に気になったので、自分の知っている範囲の言語で試してみました!
# Python の場合
“`python:Python
a = {}
a[1] = “int”
a[1.0] = “float”
a[“1.0”] = “str”
# => {1: ‘float’, ‘1.0’: ‘str’}
“`int と float は同一視されるようです。Python では `1 == 1.0` が成立するので、これは合理的な気もしますね。使う側は非常に安心できます。他にも、True, False, Fraction, Decimal なども同一視されるようです。
> Numeric values that compare equal have the same hash value (even if they are of different types, as is the case for 1 and 1.0).
https://docs.python.org/3.5/lib
【Laravel】Swagger UIのドキュメントをLaravelのソースの外に出す
# はじめに
こんにちは、プログラミングを始めて約3年のエンジニアのkeitaMaxです。
前回Laravelのpublicファイル下にSwagger UIのdistをおきました。
今回は、public下ではなくLaravelのソース外において違うポート番号でアクセスしてみれるようにしようと思います。前回の記事
Dockerの設定をした記事
https://qiita.com/keitaMax/items/7bc51212a32a6418aa1c
# Docker修正
以下を`docker-compose.yml`ファイルに追加しました。
“`yml:docker-compose.yml
swagger:
build:
context: ./docker/swagger
dockerfile: Dockerfile
ports:
– 8082:81
depends_on:
– app
volumes:
– ./swagger/:/app/swagger
“`do
PHPのselfと$thisの違い
## はじめに
Swiftと違うからごっちゃになったのでメモ## $this
$this は、インスタンス自体を指す特別な変数です。インスタンス化されたオブジェクトの中からプロパティやメソッドにアクセスするために使われます。
“`php
class MyClass {
private $prop = “property value”;public function showProp() {
echo $this->prop;
}
}$obj = new MyClass();
$obj->showProp(); // property value を出力します。“`
## self
self は、静的(static)なプロパティやメソッド、または定数にアクセスするために使われます。self キーワードを使うことで、インスタンス化しなくてもクラスの静的メンバにアクセスできます。“`php
class MyClass {
const CONSTANT = “constant value”;
privat
【PHP8.4】PUTやPATCHでもリクエストボディを簡単に取得できるようになる
PHPでは、POSTでリクエストを送るとリクエストボディが自動的に[スーパーグローバル変数`$_POST`に格納されます](https://www.php.net/manual/ja/reserved.variables.post.php)。
これは非常に便利なのですが、注意点としてPOSTでないかぎり入ってきません。
たとえリクエストメソッドGETやPUTにリクエストボディを入れて送ったとしても`$_POST`は空です。そしてPHPには何気にリクエストボディをパースする関数がなく、自力でパースするのは[たいへんに面倒で誤りも入りがち](https://stackoverflow.com/questions/5483851/manually-parse-raw-multipart-form-data-data-with-php)です。
この対応案としてスーパーグローバル変数`$_PUT`を追加したいみたいな話が出たこともあるのですが、それでは`$_PATCH`とか`$_DELETE`とかも必要なのかということになってあまり現実的ではないでしょう。
ということで、リクエストメソ