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

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

音楽聞くためのサーバー構築

– #### まえがき
**これはある程度わかってる人向けです。ご了承ください。**
ちょっとAndroidアプリでSubstreamerっていうAndroidでサーバー建てて音楽聞くことできるらしいんすよ。自分の好きな音楽を自分の好きなようにできるんでこれ入れました。他にも、WindowsとAndroidで同期再生できないかなって思ったり。Windowsの方では臨場感出すために複数のスピーカー使ってます。けど3.5mmジャックをさす箇所がパソコンにもうないのでとりあえずの処置でこのサーバーを導入してます。他にも外で聞くときとかにもデータの節約なるかも?(わかりませんが)

– ## 1-1 Windows用サーバーセットアップ
ほんとはubuntuの方にインストールしようとしていたのですがまえがきにあった通り同期再生をWindowsの方でできるか確かめるためです(~~ほんとはubuntuが起動不能になったから~~)。いやまあ気が向いたらLinux側でもやりたいと思います。ということで本題入ります。まず私が選んだのはAmpacheです。guiとかも高度な機能ありそうだったので。subs

元記事を表示

How a Software Development Company Create and Publish a PHP Package with Composer

Creating and publishing reusable PHP packages is essential for efficient software development. Developers can streamline project development and improve code maintainability by encapsulating specific functionalities into standalone components. This allows a software development company to foster collaboration within teams and the broader PHP community.

This article thoroughly discusses the process of creating and publishing a PHP package using Composer. So, let’s begin!
## Understanding Compose

元記事を表示

【Laravel】Illuminateにある主要メソッド Pagination編

### 言語
– Laravel8

## Illuminateとは
– Laravelが提供する様々なサービスやコンポーネントを構成するための基盤を提供している。
– サービスやコンポーネントは“Illuminate“名前空間内に整理されている

### どこにあるか?
**“プロジェクトディレクトリ\vendor\laravel\Framework\src\Illuminate\~“**

## Illuminate\Pagination
– Laravelのページネーション機能を提供するためのクラスがある。

### “paginate()“
– 指定された項目数で結果をページ分割
“`Laravel
$users = DB::paginate(10);
“`

### “simplePaginate()“
– シンプルな「前へ」「次へ」リンクだけを含む簡易的なページネーション
“`Laravel
$users = DB::simplePaginate(10);
“`

### “links()“

元記事を表示

【Laravel】Illuminateにある主要メソッド Http編

### 言語
– Laravel8

## Illuminateとは
– Laravelが提供する様々なサービスやコンポーネントを構成するための基盤を提供している。
– サービスやコンポーネントは“Illuminate“名前空間内に整理されている

### どこにあるか?
**“プロジェクトディレクトリ\vendor\laravel\Framework\src\Illuminate\~“**

## Illuminate\Http
– リクエストとレスポンスの操作を提供する。

## Illuminate\Http\Request

– “Request“クラスはHttpリクエストに関する情報を管理するためのメソッドを提供。

### “all()“
– 全ての入力データを取得
“`Laravel
$allData = $request->all();
“`

### “input($key = null, $defalt = null)“
– 指定されたキーの入力データを取得
“`Laravel
$nameDat

元記事を表示

【初心者向け】PHPで知っておきたい実装方法3選

# はじめに
こんにちは!
株式会社BTMの畑です。

今回は、これからPHPでプログラミングを始める方や、いざ実務でコードを書いていくぞーという方向けに、知っていると役に立つ実装方法をご紹介します。

#### 軽く自己紹介
私自身、他業種からプログラミング未経験での入社だったので、初めは分からないことばかりでした。
特に、プログラミングの教本や学習サイトでは紹介されない実装方法は、自分で調べて情報にたどり着けないと、そもそも存在にすら気付けませんでした。
実際に実務のソースコードを見たり、先輩エンジニアからレビューやフィードバックを受けて初めて「えっ、そんな実装方法あったんだ!」と知るものも多かったです。

未経験で入社したばかりの自分に宛てて、当時こういうこと知っていたら助かったなー、と思う内容を紹介していきますので、新たなチャレンジを選んだ皆様の一助となれば幸いです。

:::note info
本記事で紹介する実装方法は以下のバージョン以降で対応しています
・PHP 8.0.11
:::

# PHPで知っておきたい実装方法3選
それでは早速見ていきましょう!

##

元記事を表示

LaravelでReCaptchaのテストをスキップする方法

以下の二つを `.env.testing` に追加する。
“`tex:.env
NOCAPTCHA_SITEKEY=6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI
NOCAPTCHA_SECRET=6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe
“`

“`php:config/no-captcha.php
env(‘NOCAPTCHA_SECRET’, ‘no-captcha-secret’),
‘sitekey’ => env(‘NOCAPTCHA_SITEKEY’, ‘no-captcha-sitekey’),
]
“`

# 参考文献

https://developers.google.com/recaptcha/docs/faq?hl=ja

https://stackoverflow.com/questions/49014874/how-do-i-fake-a-recaptcha-in-a-unit-test

元記事を表示

LaravelのFeatureテストでうまくいかない時に試してみること

# 例外が出ていないか確認コードを入れてみる
“`php:魔法の三行
if ($response->exception) {
dd($response->exception);
}
“`

Controllerのメソッドをテストするためにリクエストを投げても、そのメソッドにそもそも辿り着いていなさそうなエラーが出ている時があった。
具体的には、会員登録ページの「登録ボタンの遷移」テストをしているときに、意図している仮登録完了後のページに遷移していなかったのだ。

“`php:
public function test_登録処理テスト_バリデーション()
{
$name = FakerFactory::create()->unique()->regexify(‘[A-Za-z0-9]{10}’);
$request = new Request([
‘name’ => $name,
‘email’ => FakerFactory::create()->unique()->email(),
‘password’ =

元記事を表示

【Laravel】Illuminateにある主要メソッド Cache編

## はじめに
Laravelでよくでてくる“Illuminate\~\~“って結局何だ?!と思いメソッドをまとめました。

### 言語
– Laravel8

## Illuminateとは
– Laravelが提供する様々なサービスやコンポーネントを構成するための基盤を提供している。
– サービスやコンポーネントは“Illuminate“名前空間内に整理されている

### どこにあるか?
**“プロジェクトディレクトリ\vendor\laravel\Framework\src\Illuminate\~“**

## Illuminate\Cache
– キャッシュ機能を提供。データベースやその他の外部リソースへのアクセスを減らし、アプリケーションのパフォーマンスを向上させることが期待できる。

## Illuminate\Cache\Repository

– “Repository“クラスはキャッシュ機能を管理するためのメソッドを提供。

### “get($key, $default = null)“
– 指定されたキャッシュデータを取得
“`

元記事を表示

[PHP] 可読性0の短めなbase64エンコード・デコード関数

## あいさつ
こんにちは、 [codebydeer.com](https://codebydeer.com) の UziDeer です。
今回はphpを2進にしたり+/=を取り除いたりの関数を、できるだけ短い(?)コードで書きました。
作った理由には、phpのbase64関連の関数があんまり充実していなく、軽く調べてみても冗長なものしか無かったということに加え、自分のコードの内容理解を深めようと思ったからです。
短く書こうと頑張ったら可読性が死にました(笑)

では見ていきましょう。

フォローしてくれたらうれしいな

https://x.com/codebydeer

## 書いたコード

phpのbase64関連関数たち

“`php
$b64Arr = range(“A”, “Z”) + range(“a”, “z”) + range(“0”, “9”) + [“+”, “/”]; //base64の64進の数字になる[A-Za-z0-9+/]の文字の配列を用意

function b64

元記事を表示

🌟 エキサイティングなニュース: ServBay 1.3.9がリリースされました!

最新のServBayアップデートを発表できることを嬉しく思います。開発ワークフローを加速させる新機能が満載です!バージョン1.3.9で期待できることは次のとおりです

### 1.3.9の新機能
– **クイックサーチマジック:** 新しい検索機能でホストやDNS設定を素早く検索—必要なものを瞬時に見つけることができます!⚡
– **お気に入りを手元に:** よく使うホストやメニューバーアイテムにスターを付けて、すぐにアクセス。あなたのワークフロー、お気に入りに合わせて!🌟
– **メニューバーの刷新:** メニューバーを整理して、簡単にナビゲートできるようにしました。シンプルさと効率性が全てです。
– **UIアップグレード:**
– 新しい「フォルダを開く」ボタンでプロジェクトに直行。
– ダッシュボードのテキストがあなたの言語で表示され、よりローカルな感じに。
– アップデート後すぐに新機能を発見—最先端を簡単にキャッチアップ。
– 最適化されたUIディテールで滑らかな操作を体験。
![image.png](https://qiita-image-store.s3

元記事を表示

PhpStormでコードを実行しようとすると`Cannot run program “/usr/local/bin/docker-compose”`のエラーとなる

## 現象

あるPHPコードを実行しようとすると以下のエラーが発生した。

“`
com.intellij.docker.agent.ApiTaskException: com.intellij.execution.process.ProcessNotCreatedException: Cannot run program “/usr/local/bin/docker-compose”
“`

## 環境

### OS

“`
sw_vers
ProductName: macOS
ProductVersion: 14.5
BuildVersion: 23F79
“`

### Docker

“`
docker -v
Docker version 27.0.3, build 7d4bcd8
“`

### Docker Desktop

“`
Docker Desktop 4.32.0 (157355) is currently the newest version available.
“`

## 解決方法

`設定 -> ビルド、実行、デプロイ -> D

元記事を表示

【Laravel】Illuminateにある主要メソッド Cookie編

## はじめに
Laravelでよくでてくる“Illuminate\~\~“って結局何だ?!と思いメソッドをまとめました。

### 言語
– Laravel8

## Illuminateとは
– Laravelが提供する様々なサービスやコンポーネントを構成するための基盤を提供している。
– サービスやコンポーネントは“Illuminate“名前空間内に整理されている

### どこにあるか?
**“プロジェクトディレクトリ\vendor\laravel\Framework\src\Illuminate\~“**

## Illuminate\Cookie
– クッキー操作を管理するためのクラスがある。
:::note
Cookieとは、、、
初めてアクセスしたWebサイトに、訪問したユーザーを識別できる情報が保存されること
:::

## Illuminate\Cookie\Cookiejar
– “Cookiejar“クラスでクッキーの作成、取得、削除などの操作を行うメソッドがある

### “make($name, $value, $minutes = 0,

元記事を表示

PHPコア開発者になって半年経ったので、php-srcでの活動を振り返る

こんにちは!PHPとCを主に書いています、Sakiです。日中はBASE株式会社さんでお仕事させていただいています。早朝と夜間にphp-srcでの活動をしています。PHP8.4のリリースマネージャーもやってます。

2024年からありがたいことにPHPコア開発者として採用していただき、半年とちょっとになりました。ちょうど一区切りということで、これまでの活動を簡単にまとめたいと思います。細かいものや、最終的に成果が出なかった(議論がまとまらなかったなど)ものは除外しています。
# 2023年、コア開発者になる前
実は私はphp-srcどころかOSSの経歴がかなり短いです。
## はじめてのコントリビュート
PHP8.1から、PDO MySQLでmysqlndをドライバとして使用し、`PDO::ATTR_EMULATE_PREPARES`が`true`の場合、PHPのネイティブタイプで値が返される、というように仕様が変更されました。従来の動作を望むなら`PDO::ATTR_STRINGIFY_FETCHES`を`true`にしてね、とドキュメントには記載されています。

ところが、(すでにM

元記事を表示

押さえておきたいセキュリティと対策!

こんにちは!もうすぐ3年目を迎える受託系企業で働くガッキーです。
2年目のうちに知っておかなきゃいけない知識とか実装とか焦りながら考えていたら、
まず思い浮かんだことがセキュリティだったので書いてみました!

# なぜセキュリティを守らなければならないのか!?

そもそもなぜセキュリティを確保しなければならないのか?

– 第三者への情報漏洩
– 情報の改ざん
– 第三者による不正な利用

これらを確保せずアプリケーションを確保すれば、
利用者への被害が拡大しアプリの信頼が失われ、会社経営への影響が出てきてしまうのです。

さっそく押さえておきたいセキュリティを見ていきましょう!

# 1.SQLインジェクション

:::note info
SQLインジェクションとは?

入力フォームにSQL文を入力し送信することでデーターベースの改ざんや取得がされてしまうものです。
:::

不正なselect・delete・update文を入力することで、
そこから個人情報が流失し、ユーザー情報が改ざんされ様々な問題に発展します。

例えば、ログイン画面のID・PWフォームに以下のような値を

元記事を表示

laravelでthe stream or file /var/www/html/storage/logs/laravel.logエラーが出たときの対処

# docker環境でローカルホストを開いたときに`the stream or file /var/www/html/storage/logs/laravel.log`(以下略)というエラーが表示された

# エラーの意味
大まかな意味としてはlaravel上でログファイルへの書き込みが失敗していますよ〜という意味らしい。

# 考えられる原因

・**パーミッションの問題**:ログファイルのパーミッションが正しく設定されていない。Webサーバーのユーザー(例えば、ApacheやNginxなど)が書き込み権限を持つ必要がある

・**ログファイルが存在しない**:そもそもログファイルが存在していない場合。

上記の2点が原因として考えられると思いますが今回はエラーメッセージに`permission denied`と表示されていたのでパーミッションの問題かと考えられます。ログファイルも(storage/logs)にしっかりと存在していました。

# 対処法

### 1.ターミナル(プロジェクト直下)で`sudo chmod o+w ./storage/ -R`を入力

### 2.続け

元記事を表示

【Laravel】Illuminateにあるメソッド Auth編

## はじめに
Laravelでよくでてくる“Illuminate\~\~“って結局何だ?!と思いメソッドをまとめました。

### 言語
– Laravel8

## Illuminateとは
– Laravelが提供する様々なサービスやコンポーネントを構成するための基盤を提供している。
– サービスやコンポーネントは“Illuminate“名前空間内に整理されている

### どこにあるか?
**“プロジェクトディレクトリ\vendor\laravel\Framework\src\Illuminate\~“**

## Illuminate\Auth
– 認証システムを管理するためのクラスがある。

## Illuminate\Auth\AuthManager

– “AuthManager“クラスは認証の設定とドライバの管理を行う

### “guard($name = null)“
– 指定した認証の方法を取得する
“`Laravel
$user = Auth::guard(‘admin’)->user();“
“`

##

元記事を表示

【PHP】2024年のPHP開発者を支える中心人物たちを勝手に紹介するよ

PHPの隆盛を支えてきた開発者は非常にたくさん存在しますが、その中でも最近のPHPを支えている中心の有力者たちを紹介します。

選択の基準ですが、[PHP Foundation](https://thephp.foundation/)の[Structure](https://thephp.foundation/structure/)に載っている人です。
他にも紹介したい人はたくさんいるのですが、きりがないですし、そもそも私はPHP言語開発者たちやコミュニティと一切関わりのない全く無関係な人間なので勝手に選抜するのもなんだかなあということでやめておきます。

# PHP Foundationとは

まずPHP Foundationって何なのかという話ですが、ここ数年PHP言語の発展を支えている団体です。

実は長らくの間PHP言語は、言語自体を支えている団体がおらず、ボランティアの個人が集まって開発が進められていました。
これは言語としてはかなり特異な状態であって、たとえばPHPと同列に語られがちなLLを見てみると、Rubyには[Ruby Association](https://ww

元記事を表示

PHPでSSL関連のエラーでハマった件

CentOS7からUbuntu24.04にサーバーを入れ替えたところ、以下のエラーで悩んだ!
`Warning: getimagesize(): SSL operation failed with code 1. OpenSSL Error messages:
error:0A000086:SSL routines::certificate verify failed in ・・・/tcpdf_images.php on line 166`

php.iniの[openssl]セクションに
`openssl.cafile=/etc/ssl/certs/SectigoRSADomainValidationSecureServerCA.crt`を追加してもダメ
`/usr/lib/ssl/openssl.cnf`にlegacy_sect追加してもダメ

散々ググって、やっと[これ](https://serverfault.com/questions/1118578/ubuntu-cannot-verify-sectigo-certificate)見つけて解決

`# cp /et

元記事を表示

【Laravel】抽象メソッドとは

## 抽象メソッドとは
抽象クラスの中で定義されるメソッド。
抽象クラスは、他のクラスに継承されることを前提としている。
子クラスは必ず抽象メソッドを実装しなければならないため、特定のメソッドが常に存在することを保証できる。

`abstract`は「このメソッドは抽象メソッドである」という意味。

具体的なロジックはこの抽象メソッドを実装するサブクラスに委ねられる。
“`php
abstract class Animal {
//抽象メソッドを定義
abstract public function makeSound();
}

class Dog extends Animal {
public function makeSound() {
return ‘Bark’;
}
}
“`

## 使う場面
– 共通のインターフェースを強制し、子クラスが必ず特定のメソッドを実装する必要がある
– 共通の基本機能を持ち、それを派生クラスで具体的に実装する必要がある

元記事を表示

php8+phalcon5+nginx+windows10 環境構築メモ

初見のphalcon環境構築時に少々手こずったので備忘として残します。
まずphalconの情報が思いのほか少なかった(シェアがそこまでないからかも)
私自身の経験不足が原因と捉えていますが、似たようなエラーに苦戦中の方の救いになればと思います。
#### 本件に関係しそうな環境諸々は以下の通り
– php 8.1.8
– phalcon/devtools 5.0.x-dev
– nginx 1.27
– mysql 5.7
– windows10
– docker desktop 4.31.1
– git for windows 2.43.0
#### docker インストール
“`
$ docker-compose -f .docker/docker-compose.yml up -d –build
$ docker exec -it xxxxx bash
$ composer install
“`
※必要最低限のみ記載するので適宜変更してください。
#### phalconインストールで問題発生
Dockerfileは以下の通り(ChatGPTに聞けば出てくるような内容な

元記事を表示

OTHERカテゴリの最新記事