PHP関連のことを調べてみた2021年02月26日

PHP関連のことを調べてみた2021年02月26日

SymfonyのEncoreでVuetifyのSassを調整するための設定をする

# TL;DR

`symfony`の`encore`が提供する`webpack.config.js`で、VuetifyのSASSを変更したい場合に、以下の設定をしました。

“`javascript
// enables Sass/SCSS support
.enableSassLoader((options) => {
options.implementation = require(‘sass’)
options.sassOptions = {
// fiber: require(‘fibers’),
indentedSyntax: true,
}
options.additionalData = “@import ‘assets/styles/variables.scss'”
})
“`

# 以下、詳細。

個人的なメモです。

SymfonyもLaravelのLaravel Mixのような、Javascriptの開発環境をかんたんに構築するための[Encore](https://symfony.com/

元記事を表示

Raspberry PiでApache2(2.4) + php(8.0)を構築

Raspberry PiにApache2とphpをインストールしてwebサーバー化します。

#Apache2のインストール
パッケージマネージャーのアップデート

“`bash
sudo apt-get update
“`
Apache2のインストール

“`bash
sudo apt-get apache2
“`

一応、apache2.serviceの再起動

“`bash
sudo systemctl restart apache2
“`

ラズパイでは/var/www/html/index.htmlにデフォルトのページが保存されています。
apache2のデフォルトページとしてこれが表示されるはずなので確認します。ここで、ラズパイのローカルipを調べます。

“`bash
ifconfig
“`

有線ならeth0、無線ならwlan0のところにそれぞれinetとあるはずです。その横に割り当てられたipアドレスがあります。![Screen Shot 2021-02-26 at 9.59.16.png](https://qiita-image-store.s3.a

元記事を表示

Laravelの学習を始めるにあたって

お疲れ様です。TaYです:open_hands:

PHPでのポートフォリオ制作・外部公開が終わり、これからの課題が見えてきました。

__現時点での課題__

* オブジェクト指向に基づいたコーディングができていない
* MVCモデルについての理解・経験がない
* フレームワークを触った経験がない

これらを解決するべくLaravelの学習を始ました。

使用する書籍は[こちら](https://www.amazon.co.jp/PHP%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AFLaravel%E5%85%A5%E9%96%80-%E7%AC%AC2%E7%89%88-%E6%8E%8C%E7%94%B0-%E6%B4%A5%E8%80%B6%E4%B9%83/dp/4798060992)

![Laravel入門](https://images-na.ssl-images-amazon.com/images/I/61xv+1pUBrL.jpg)

評価が高かったため、こちらを選びました。

すこし読ん

元記事を表示

【PHP備忘録】ログインの流れ

ログインの大まかな流れ。

前提

・join/index.php(登録画面)
・join/checked.php(登録確認画面)
・login.php(ログイン画面)
・index.php(ログインされた画面)

formのactionは空にしておく

あと各フォルダの最初にこれを忘れない

“`PHP:
session_start();
require(‘../dbconnect.php’);
“`
これで、つながる

“`
$_SESSION[‘join’] = $_POST;
“`
後これがPOSTにある値をセッションにさせたやつ

HTMLにて変数で代入する

例 この場合だと打たれた名前が表示されるようになる

“`PHP:check.php

“`
これを各それぞれの値にやる
あとこれめちゃくちゃやる、もうほぼこれ。

DB接続->

元記事を表示

多次元配列を時間順に並び替える

#概要
データベースの結果を多次元の配列に代入して時間順に並び替えたのでその方法をメモします。

#結論
array_multisort( array_map( “strtotime”, array_column( $data, “created_at” ) ), SORT_DESC, $array ) ;

一つずつ見ていきます。

#実装
こんな感じの配列

“`.php
$data=[
{
“post_id”: 76,
“user_id”: 3,
“description”: “hogehoge”,
“created_at”: “2021-02-08T09:59:52.000000Z”,
},
{
“post_id”: 77,
“user_id”: 2,
“descriptio

元記事を表示

Laravel 8.x Seeder生成で怒られる

Seederでダミーデータを作成する際、グローバルヘルパや関数を使用する際の落とし穴があります。

`php artisan make:seed UsersTableSeeder`で作成すると以下のSeederが生成されます。

“`php:UsersTableSeeder.php

元記事を表示

PHPでMySQLの接続確認をする

MySQLのクライアントが入っていないサーバーでMySQLアカウントの確認をする方法です。

“`
ssh 対象のサーバ
vi test.php
————————————————————————————————-
getMessage().”\n”;
}
——————-

元記事を表示

Laravel DBレコードの存在判定

LaravelのクエリビルダでDBレコードの存在チェック

記事内容

Laravelでオリジナルアプリのバックエンドを実装していく際に、DBにレコードが存在すればtrueを返し(ページ遷移)、レコードが存在しなければfalseを返す(エラーメッセージを表示する)という機能を実装したので、備忘録として残したいと思います。

開発環境

Laravel 8.22.1
PHP:8.0.1
MySQL:8.0.23
MacOS:11.1 ( Big Sur )

DBレコードの存在チェック

“`○○Controller.php
DB::table(‘table名’)->where(column, $data)->exists();
“`
クエリビルダの基本的な書き方に、existsメソッドを繋げて記述することで簡単にレコードの存在を判定できます。

実際の記述

今回僕は、下記のように記述しました。

内容としては、ユーザーによるフォームからのリクエスト内容と一致するレコードが、存在するかどうかで条件分岐

元記事を表示

PHPでAWS S3からディレクトリ単位でダウンロード

## 前提条件
AWS SDK for PHP 3.x を利用

## やってみた感想
CommandPool利用のために配列を作成する必要がなく
コードもシンプルになるのでよい

## AWS S3 バケットを再帰的にダウンロード

### 同期転送
“`php:sample.php
‘****’,
‘version’ => ‘latest’,
]);

// from
$source = ‘s3://bucket/foo’;
// to ローカルディレクトリのパス
$dest = ‘/path/to/destination/dir’;

$manager = new Transfer(
$client,
$source,
$dest,
);
$manager->transfer();

“`

### 非同期転送
“`php:sample.php

元記事を表示

LaravelでStrategyパターン

Strategyパターンやってみました。
割と使い道があるんじゃないかと思います。

# バージョン

Laravel 6.18.40
PHP 7.4.4

# Strategyパターン

![512px-StrategyPatternClassDiagram.svg.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/329016/108e11cc-6049-35db-f1ac-ffddf4200d65.png)

Strategyパターンはstrategy(戦略)という言葉の意味からわかるように、状況に応じて処理を動的に切り替えることを目的としたデザインパターンです。
それぞれの処理をクラスとして定義し、共通の呼び出し部分から呼び出して処理を代替できるようにします。(オブジェクト指向の文脈ではdelegationと言われるようです)

# 実装

## 仕様

例えば、ユーザーが単発の仕事に応募してその報酬をもらえるようなサイトがあるとします。仕事情報は管理画面からCSVでアップロードする仕様になっていま

元記事を表示

フォームデータの送信

###form要素
データを送信する方法を定義します。その属性すべてが、ユーザーが送信ボタンを押すと送信されるリクエストを調整できるように設計されています。

###action 属性
action 属性は、どこにデータを送信するかを定義します。値は妥当な相対/絶対 URL でなければなりません。この属性が与えられなかった場合は、フォームが含まれているページの URL にデータが送信されます。

###GET メソッド
GET メソッドは、サーバーに対して指定したリソースを返すよう求めるためにブラウザーが使用するメソッドです。

###POST メソッド
POST メソッドは少し異なります。これは、HTTP リクエストの本文で提供したデータを考慮したレスポンスの要求を、ブラウザーがサーバーに送信するためのメソッドです。

元記事を表示

計算でじゃんけん

[[PHP]じゃんけんプログラム](https://qiita.com/ri_/items/5c73dca33cc8401c2600)と、[if文なしでじゃんけん](https://qiita.com/tadsan/items/65d91ba6b50535fc8815)を読んで自分でもやってみた。

まずは、じゃんけんの勝敗を表にする。
9パターンしかないので、そこに数値を入れると下のようになります。

| | グー(0) | パー(1) | チョキ(2) |
|:-:|:-:|:-:|:-:|
| グー(0) | あいこ(0) | 負け(2) | 勝ち(1) |
| パー(1) | 勝ち(1) | あいこ(0) | 負け(2) |
| チョキ(2) | 負け(2) | 勝ち(1) | あいこ(0) |

縦軸を`$player_hand`、横軸を`$pc_hand`とすると、計算方法は下の通りです。

“`php
$result = ($player_hand – $pc_hand + 3) % 3;
“`

~~これを邪悪な三項演算子に放り込む。~~

元記事を表示

【備忘録】写真のアップロード方法

最近、エラーが埋まってる埋まってないで考えると楽になるのかなと感じる

HTMLにて

これをすることにより、ファイルから選ぶことができる

“`PHP:join.php
input type=”file”
“`

PHPにて

理解はしていない…
上のPHPで名前(?)を決める

“`PHP:join.php
$fileName = $_FILES[‘image’][‘name’];
if(!empty($fileName)) {
$ext = substr($fileName, -3);
//写真のタイプを選定し、エラーを作る//
if($ext != ‘jpg’ && $ext !=’gif’) {
$error[‘image’] = ‘type’;
}
}
“`

PHPにて

上の2行でフォルダ内にアップロードできるようになる

“`PHP:join.php

if(empty($error) ) {
//写真のアップロードの決まり文句らしい//
$image = date(‘YmdHis’

元記事を表示

php require とrequire_oneceの違い , includeとの違い, パスの指定方法についてなど

#includeとrequireの違いやパス指定のまとめ

###違いについて
####再読み込みを同じファイル内で行われた際の挙動が違う

参考:https://qiita.com/awesam86/items/3fa28e23c95ca74caddc

####試してみた(index.phpでr.php, rone.phpを読み込み検証)

r.php

“`php

元記事を表示

if文なしでじゃんけん

[[PHP]じゃんけんプログラム – Qiita](https://qiita.com/ri_/items/5c73dca33cc8401c2600)を読んで、自分ならどうするか考えてみた。

## 解答

複雑に考えればいくらでも複雑にできるけれども、とりあえずこのくらいにした。

“`php
[‘チョキ’ => 1, ‘パー’ => -1],
‘チョキ’ => [‘パー’ => 1, ‘グー’ => -1],
‘パー’ => [‘グー’ => 1, ‘チョキ’ => -1],
];

$printer = fn(string $my_hand, string $your_hand, int $result): string =>
sprintf(“[%s vs %s] %s”, $my_hand, $your_hand,
match ($result) {
-1 => ‘あなたの負け’,
0 => ‘あいこ

元記事を表示

eccube4のテーブル拡張、管理画面

#はじめまして
qiitaの投稿をはじめました。普段は関西のweb系の会社でインターンをしています。phpとjqueryを中心にバックエンド開発をしており、laravel, wordpress, eccubeを使って開発をしています。今日はeccubeのデータベースを拡張して商品やカテゴリの内容を追加(例えば各商品にpdfファイルを追加したいとか)にはどうすればよいかを書いていきたいと思います。最近けっこうeccube4をさわっているので当分それ系の記事が多くなるかもしてませんね。また、自分自身の備忘録もかねています。

#テーブルの拡張
eccube4 はご存知の方もおおいと思いますが、symfonyが使われていますので、symfonyに則ってやることを考えるのが一番いいと思います。

###traitを作成する
たとえば、Eccube/Entity/Product.php(dtb_product テーブル)を拡張したいとき、基本的には /app/Customize/Entityの配下にProductTrait.phpファイルを作成し、そこに追加したい項目を書くのがよいでしょう。

元記事を表示

[PHP]じゃんけんプログラム

未経験でシステムエンジニアとして新卒入社し、もうすぐ1年です。
が、エンジニアとして成長できているか不安だったのでこれから少しずつ勉強し
このQiitaにアウトプットしていきます。

[PHP]じゃんけんプログラム

ロジック部分

“`php

元記事を表示

【Laravel】php artisan db:seedが通らない時の対処

## 環境
PHP 7.3.8
Laravel 6.20.16
Docker 19.03.8

## Target class […] does not exist.というエラー
Docker環境でlaravelクイズアプリを作成中、
サンプルで問題とカテゴリーデータをシーダーでデータベースに入れようとした時に怒られた話。

“`
php artisan db:seed
“`
上記コマンドを実行した際に下記エラーが発生。

“`
Illuminate\Contracts\Container\BindingResolutionException : Target class [CategoryTableSeeder] does not exist.

at /var/www/html/app/vendor/laravel/framework/src/Illuminate/Container/Container.php:805
801|
802| try {
803| $reflector = new

元記事を表示

プログラミングを始める前に…

#はじめに
この記事は「なんとなくプログラミングに興味はあるけど、実際勉強したらどのようなことができるようになるのかなどが分からない」という方に向けた記事となっています。
学習する言語によって出来ることは様々ですが、私が今回説明するのは**Web系**をメインに記事を投稿していこうと思います。

#目次
1.プログラミングを学ぶことによって出来ること
2.Web系のプログラミングとは
3.Webアプリケーションの仕組み
4.静的と動的の違い
5.フロントエンドとバックエンドの違い

#1.プログラミングを学ぶことによって出来ること
早速本題に入っていきますが、
『プログラミングを学習したらどのようなことができるようになるのか』
をざっくり説明していこうと思います。

– Webサイトの作成
– Webアプリケーションの開発
– スマホのアプリ開発
– デスクトップアプリの開発
– ゲームソフトの制作
– ドローンの制御
– 株価予測(機械学習)
– 新規通貨の発行(仮想通貨)

今上げたのはほんの一例に過ぎず他にも様々なことができるようになります!
プログラミング言語によって出来ること

元記事を表示

スプレッドシートアプリを利用したデータベース編集を簡単実現

#はじめに
エキサイト株式会社(XTechグループ)エンジニア[masatomur](https://note.com/masatomur)?です。
先日、企画側からこんな要求がありました。
>_データベースって要はエクセルの表がいっぱい集まったようなものですよね?会員名簿の表なんかはエクセルの画面みたいに自由に編集したいんだけどできます?_

時間が許す限りデータベースとエクセルとの違いをとくとくと説教したいところでしたが、

– 万が一他のテーブルとのリレーショナルに問題が生じてもさほどクリティカルではないテーブルだったらまあいいかな
– データ管理も運用側に任せてしまえばこちらも楽かな

ということで、つくってみることにしました。(Oracleクライアントなんて使わせられませんから)
このような裏方のツールにはあまり手間をかけたくないし、webでデータ編集画面てすごくつくりたくないので、

1. **会員名簿テーブルのレコードをcsvファイルとしてダウンロード**
2. **Numbersで開いて編集〜csvファイルとして書出し**
3. **csvファイルをアップロードし会員名

元記事を表示

OTHERカテゴリの最新記事