PHP関連のことを調べてみた

PHP関連のことを調べてみた

composerのバージョンを下げる

以下の記事を参考にwindows11にComposerをインストールしたが、バージョンが高かったため下げた時のメモ
https://weblabo.oscasierra.net/php-composer-windows-install/

“`bash
composer self-update 1.10.13
“`
このコマンドだけでできた

“`bash
>composer -V
Composer version 2.8.1 2024-10-04 11:31:01

>composer self-update 1.10.13
Upgrading to version 1.10.13 (stable channel).

Use composer self-update –rollback to return to version 2.8.1

>composer -V
Composer version 1.10.13 2020-09-09 11:46:34

元記事を表示

Macで絶対に見逃せないおすすめソフトウェア

ツール愛好者として、私が頻繁に使用しているアプリケーションをいくつかご紹介します。中には他の人におすすめされたクラシックなものもあれば、私がたまたま見つけて非常に便利だと感じたものもあります。生産性向上に役立つかどうか、ぜひチェックしてみてください。

### Karabiner

このソフトウェアをおすすめする理由は、私のメカニカルキーボードのキー配置が、接続したときに標準のMacレイアウトと一致しなかったからです。Karabinerを使うことで、私の好みに合わせてキーをリマップできます(例えば、私のikbc C87ではControlキーとOptionキーを入れ替えています)。さらに、使用頻度の低いキーを実際に使う機能にマッピングできるので、素晴らしいキーボードリマッピングツールです。

![Karabiner](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/69dbrji4od56ix8fpefc.png)

私は左のControlキーとOptionキーを入れ替え、あまり使わないPrint ScreenキーをMis

元記事を表示

XAMPPのPHPを8.0→8.2にバージョンアップ

## バージョンアップを行う理由
Larave10を使うにはphp8.1以上が必要なため、XAMPPのPHPをバージョンアップ(8.0→8.2)することに。

[こちらの記事](https://zenn.dev/ritton/articles/66e01b8567f75a)を参考に、php8.2をダウンロードしてきてXAMPPのPHPを入れ替えることにした。

## 手順通りやったがうまくいかない
PHP公式サイトのダウンロードページ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1830892/03bdf6d9-1cb4-bbf6-212e-947a8ddcea8f.png)

ダウンロードするPHPについて、参考記事には「『Non Thread Safe』でよいっぽい。」とあったが、「Non Thread Safe」をダウンロードし以降の手順を進めたところ、私の環境ではXAMPPのApatcheが起動しなかった。

### 問題1: httpd-xampp.confの指定と実際のPH

元記事を表示

なぜ大規模用フレームワークになるとルーティング設定がいるのか?

# 1. そう思ったきっかけ

初めてプログラミングを学び始めたとき、PHPを使ってウェブサイトを作成することは非常にシンプルでした。
ファイルベースの構造を使い、たとえば `index.php`、`about.php`、`contact.php` などのファイルを作成するだけで、特別なルーティング設定をする必要はありませんでした。URLがそのままファイルの構造に対応していたからです。

このようなファイルベースのルーティングは、小規模なウェブサイトでは非常に便利で直感的ですが、複雑なアプリケーションや大規模なプロジェクトになると、途端に管理が難しくなります。そのときに、フレームワークのルーティング設定がなぜ必要なのかを考えるようになりました。バニラのPHPでは不要だったルーティング設定が、フレームワークになると必須になる理由は何なのでしょうか?

# 2. 詳しい説明

私が調べた結果、大規模なアプリケーションでは、いくつかの要因によりルーティング設定が必要になります。
ここで上げられるのは`laravel`ですが、その他にも`Node.js`、`Java`、`Python`などを使

元記事を表示

クリーンアーキテクチャとオニオンアーキテクチャの違い

ドメイン駆動設計で一緒に用いられるアーキテクチャ、奥が深い。
そりゃ皆が色々本を出すわけですよ…。

今回は表題の通り、クリーンアーキテクチャとオニオンアーキテクチャの違い、二つのアーキテクチャ名はよく見るけど、ソースで見たら具体的にどう変わるの?ってのを調べたのでメモ。

# 二つの違い

まず、文言で二つの違いをおさらい

:::note info
クリーンアーキテクチャ
クリーンアーキテクチャは円構造、以下の4つのレイヤーを持つ
* エンティティ層
 アプリケーションのビジネスルールや状態を表すモデル
* ユースケース層
 特定のユースケースに従ってエンティティを操作する
* インターフェース層
 外部への入出力(インフラ、UI)とのやり取り
* インフラ層
 DB、ファイルシステム、外部サービスとの接続
:::

:::note info
オニオンアーキテクチャ
同じくレイヤー構造を持つが、ドメインモデル(ビジネスルール)を中心に捉えた構造

* ドメインモデル
 ビジネスのコアに

元記事を表示

PHP-クラス-オブジェクト定数

# はじめに
PHP・WEB開発を独学中アラフィフ主婦の忘備録です。

## 定数とは
**変数と同様の性質を持っているが、再代入できない値のこと。**
* システム固有の番号など一度定めたら原則として変更しない値を保存します。
* クラス内で定義された定数のことをオブジェクト定数といいます。

### サンプルコード

“`PHP
class Item
{
// const キーワードを用いてオブジェクト定数を定義
const VAT = 1.2; // 定数名は全て大文字
// 複数の単語はアンダースコア _ で繋ぐ(コンスタントケース または アッパースネークケース)
public $cost = 200;

public function displayCost()
{
// クラス内からオブジェクト定数へのアクセス
// self::オブジェクト定数
echo (int)($this->cost * self::VAT), “円\n”;

元記事を表示

MAMPで作るPHPのログインページアプリ #1

## 目次
[概要](#概要)
[目的](#目的)
[要件定義](#要件定義)
[開発環境](#開発環境)
[データベース設計](#データベース設計)
[デバック準備](#デバック準備)
[トップページ作成](#トップページ作成)
[ログイン後のページ作成](#ログイン後のページ作成)
[アカウント登録ページ作成](#アカウント登録ページ作成)
[今後の課題](#今後の課題)

## 概要
PHP初学者がログインページを作成して、PHPについての知識をアウトプットする。

## 目的
PHP初心者の私がPHPを勉強するにあたって、自分で行った勉強の内容を備忘録として記事を作成していきます。
初学者向けのPHP勉強でToDoリストを作成するものがありますが、以前似たようなものを作成したので、今回はログインページを作成します。

今回の記事では、`動くものを作る`というのが目的なため、セキュリティやデータベースの設計などはあまり考えずに実装します。
今回作成したコードをもとに次回以降の記事でコードを改修しつつ、PHPについての知識をインプット/アウトプットしていきたいと思います。
また、

元記事を表示

コンパイルに 5 日かかった PHP リソースのコレクションです。気に入ってください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3893259/f365453f-56a0-8470-b5b7-23268a0af282.png)

これは、皆さんが必要なものを見つけるのに役立つように、私がまとめたPHPリソースのコレクションです。無駄な時間をかけずに検索できるようにしています。毎週更新しますので、役に立ったらスターをつけてください❤️。転載や共有を希望される場合は、出所を明記してください。ありがとうございます!😆

## PHP PSR コーディングスタンダード
– 公式サイト: [www.php-fig.org](http://www.php-fig.org)
– 原文: [github.com/php-fig/fig](https://github.com/php-fig/fig)

## PHPリソースリスト
1. **PHP環境デプロイツール**:
– [Servbay](https://www.servbay.com)
– [XAMPP](http

元記事を表示

三項演算子の省略形には気をつけろ

## 初めに

PHPやjavascriptなどの三項演算子で
“`javascript
const hoge = x ? x : y
“`
などと書く場合に省略形として
“`javascript
const hoge = x ?? y
“`
とする場合がありますが、この二つの結果が違ってくる場合があります

## 実際に試してみる
例えば以下の場合は同じ結果です
“`javascript
const x = 1
const y = 999
console.log(x ? x : y)
> 1

const x = 1
const y = 999
console.log(x ?? y)
> 1
“`

しかし`x = 0`の場合
“`javascript
const x = 0
const y = 999
console.log(x ? x : y)
> 999

const x = 0
const y = 999
console.log(x ?? y)
> 0
“`
となり結果が異なります

## なぜか

`??`は正式名称`Null合体演算子`と言い、名前の通りn

元記事を表示

【macOS】asdfを使ってphpを導入するには

mac に asdf を使って php を導入する奮闘記

WSLでの使い方は以下の通り

https://qiita.com/sigeta/items/54eeb7671484c62d0853

## asdf の導入からエラーまで

mac だとなんか `brew` にあるみたいなので、こちらからインストールしてみる
※ちなみに当方 Intel Mac

“`bash
$ brew install asdf
$ asdf –version
version: v0.14.1

$ asdf plugin-add php https://github.com/asdf-community/asdf-php.git
Plugin named php already added
“`

ありゃ、すでにPHPプラグインが入ってた

“`bash
$ asdf install php 8.3.12
“`

数々のエラーが出てきた…
検索用に並べておく

“`
configure: error: bison 3.0.0 or later is required to

元記事を表示

Macの大文字/小文字を区別しない仕様でハマった

## 環境
以下の環境で動作させています。
“`
% sw_vers
ProductName: macOS
ProductVersion: 12.6.5
BuildVersion: 21G531
“`

## ハマってしまった事象
Macが大文字/小文字を区別しない仕様を失念していて、Mac環境で動作していたコードがLinux環境へのデプロイした際にエラーを引き起こしました。

“`
// classes/trait/fuga.php というトレイトファイルを呼び出したい

【classes/piyo.php】

namespace Hoge;

use Hoge/Trait/fuga.php // traitというディレクトリを大文字で記述してしまったことでエラーが発生

“`

Macで「aa.php」と「AA.php」の作成を試みたところ、「AA.php」という名前の新しいファイルは作成されず、「aa.php」が更新されるだけでした。

“`
% touch aa.php
% ls
aa.php
% touch AA.php
% ls
aa.php
“`

#

元記事を表示

【PHP】参照渡しって何なのさ

# はじめに

ここでは以下のページでご紹介させて頂いたフレームワーク環境で使っているPHPの技術情報を中心に備忘録としてまとめています。

https://qiita.com/glasses_seven/items/433ac9d9fcbdb72c6d18/

# お決まりの書き方

「参照渡し」でよく使われるのは以下のようなパターンではないでしょうか。

“`php:引数での「参照渡し」
function testFunction(&$test)
{
<ステートメント>
}
“`

上記のように関数呼び出しでリターン値以外のデータも取得したい時によく使われる方法だと思います。

他にもクロージャーとのデータのやり取りをする場合にも使われる事がありますが、ここで注目すべきは`$test`という引数の先頭に`&`(アンパサンド)が付いているところです。

これはC言語でもよく使われる書き方で「アドレス渡し」と呼ばれていますが、PHPは昔から他のプログラミング言語を部分的にリスペクトしているようなところがあるので、これもその一つだと思っています。

PHPとC言語ではコンパ

元記事を表示

CakePHPプロジェクト作成の備忘録

# 記事作成の背景
Cake PHP公式サイトからコマンドでプロジェクトを作成しようとしたら、エラーが表示されてしまったので
備忘録として簡単に記載しようと思います。

# 結局原因は、何だったのか?
原因は、php.iniファイルでの設定(図1)がコメントアウトしたままであったことでした。

今回の箇所は、「Dynamic Extension」の箇所を更新していきます。

![PHP設定ファイルの画像.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1169664/8a0a9035-480f-98ba-fc37-e5e5a4d735bd.png)

## extention=intlを有効にする

「extention=intl」はデフォルトだとコメントアウトのままであったので、こちらのコメントを外しましょう。
“`php.ini(更新前)
;extension=intl
“`

“`php.ini(更新後)
extension=intl
“`

## extenti

元記事を表示

やらない言い訳はいらない、未経験エンジニアへの転職

自己紹介
————————-
初めまして、秋の字と申します。
28歳で未経験としてIT業界へ転職、現在は無事通信系の会社に就職できて半年ほどエンジニアとして
業務しております。
子どもが2人おり、毎日エネルギッシュな生活をして充実した日々を過ごしています!
3か月ほどスクールにて学習を行い、転職活動は約3か月ほどかかりました(ご縁があり早期に決まり良かった・・・)

今回お伝えしたこと
————————–
子どもが2人おり、確実に給料が下がる中での転職は不安しかありませんでした。
その中で同じように踏みとどまってしまっている方へ、行動が起こせるよう今回お話したいと思います。

エンジニアへの転職を決意した日
————————————
エンジニアを目指す経緯についてお話します。

方向性のない大学生
————————–
大学は情報系の大学でした、ただ私は映像や音響、HTMLやCSS、JavaScriptなど深堀りのない浅くな勉強を行っていまし

元記事を表示

Python基礎でスキップしていたこと:「例外処理」について学ぶ

## あらすじ

### 例外処理ってif分で判定するだけじゃないの?という大きな勘違い
業務で使用するツールを作成したり、pythonを使用することがしばしばあります。とはいえ、ちょっとした効率化ツールっだったり社内向けのツール開発がほとんどで、例外処理については`if分で判定しておけばいいんでしょ`くらいの感覚でした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3562770/5756306d-0948-f655-3689-3a5b7e9da047.png)
ただこの場合エラーが発生してしまうと必ずプログラムが終了してしまいます。
小さなツールだと「そういう癖があるのね」くらいで済みますが、これを参照してほかのプログラムが動いたりする場合はしっかり処理しておかないと、何が原因で落ちてるのかわかりにくくなります。
また、コメントをしっかり残さないと何のためのif文なのかもよくわからなくなりがちです。

### きっかけ
Web開発をする際に学んだJavascriptやPHPを

元記事を表示

FuelphpでDB接続情報を変える方法【MAMP環境下】

### 主に自分用のメモなのでわかりずらい部分はご了承ください🙇

【前提】
fuelphpとmamp環境で簡素なタスク管理アプリを作成中です。

【起こっていた問題】
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3909033/ed591ca6-f987-0028-86ab-00b9dd1e2422.png)

上記の写真の様なDBを利用していたが、
DB名を変更したく
phpmyadminより以下のようにDB名を変更した。
(DB名をuserregister→taskappへ)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3909033/f9a8fc05-d6e9-fd68-a472-24b3b33ea1c5.png)

これで実行すると以下のようなエラーが出た。
![image.png](https://qiita-image-store.s3.ap-northeast-1.a

元記事を表示

OSとは

## OSとは
OSとはオペレーティングシステムの略称で **「基本ソフトウェア」** のこと。
PCやスマートフォンを使用する上で必要なソフトウェア。

**Mac、Windows、Linux、iOS、Android** などを指す。

PCやスマートフォンの基本操作をするために必要なもの。
PCを使用していて **「当たり前だと思う機能」** を全て提供してくれる。

**プログラムの中のプログラム。**

元記事を表示

MAMPインストール後、サーバーStartをすると「Apache couldn’t be started. Please check your MAMP installation and configuration.」というエラー

今回、PHPの開発環境を構築するためにMAMPを導入しました。
MAMPは、Mac上でApache、MySQL、PHPを手軽にセットアップできるアプリケーションです。
MAMPは無料版と有料版のMAMP PROがあり、間違えてPRO版を起動しないよう注意が必要です。

まず、以下のリンクからMAMPをダウンロードし、インストールします。
https://www.mamp.info/en/mac/

インストール後、MAMPのアプリケーションを起動し、”Start”ボタンをクリック。しかし、以下のエラーメッセージが表示されました。

“`「Apache couldn’t be started. Please check your MAMP installation and configuration.」“`

PHPとMySQLは正常に動作しているものの、Apacheが起動しない状態です。

## エラー原因の特定
Apacheが起動しない原因を探るため、エラーログを確認しました。
エラーログは以下のパスに出力されます。
“`Applications/MAMP/logs/apach

元記事を表示

長期インターンで学んだことについて

はじめに

元記事を表示

PHPエンジニアがよく疑問に感じること

PHPエンジニアがよく疑問に感じる点には、以下のようなものがあります:

# 1. 一貫性のない関数名:
PHPの標準関数には命名規則の一貫性がないものがあります。例えば、`strpos()`と`str_replace()`のようにアンダースコアの有無が統一されていません。

## 理由:

1. 歴史的な経緯:
PHPは1995年に個人プロジェクトとして始まり、急速に発展しました。初期の段階では一貫した命名規則が確立されておらず、関数名が場当たり的に決められていたことがあります。

2. 後方互換性の維持:
既存のコードを破壊しないために、古い命名規則の関数を残しつつ、新しい命名規則を導入せざるを得ませんでした。

3. 複数の開発者の関与:
PHPの発展過程で多くの開発者が関わり、それぞれが異なる命名規則を持ち込んだ可能性があります。

4. C言語の影響:
PHPは初期にC言語の影響を強く受けており、C言語風の命名規則(アンダースコアなし)と、より読みやすい命名規則(アンダースコアあり)が混在しています。

5. 機能の追加と拡張:
新しい機能や拡張が追加される際に、既存の命名規

元記事を表示

OTHERカテゴリの最新記事