- 1. 正規表現
- 2. laravel新規プロジェクト環境設定+認証機能
- 3. perse_urlを使ってURLパラメーターが含まれたURLで適切なファイルを読み込む方法
- 4. 【PHP】コメントとコメントアウト
- 5. phpのroutingライブラリAltorouterの紹介
- 6. Laravelのmigrationでtimestamp型がInvalid default value for ”エラー
- 7. 【PHP】配列はタンスをイメージするとわかりやすいかもしれない〜添字配列編〜
- 8. 元料理人でプログラミング初心者の僕がMacでPHPを始めるまで。
- 9. PHPのデータ型一覧
- 10. Laravelのルーティングでアノテーションを使う方法
- 11. laravel5.8 注文履歴
- 12. WindowsのPostgreSQLで初めてテーブルを作った件について
- 13. Laravel で別のControllerのメソッドを呼び出す
- 14. phpでLEFT関数とRIGHT関数
- 15. 共同開発まとめ
- 16. PHPで配列の要素を部分一致で検索する方法 ( preg_grep )
- 17. PHP 基礎 Part1
- 18. PHP8.1でarray_is_listが追加されたよ
- 19. Laravel のリリーススケジュールとサポート期限
- 20. ec2のamazon linux2 にnginx+php-fpm+php7.4+phalcon4 セットアップ
正規表現
#はじめに
正規表現とは「いくつかの文字列を一つの形式で表現するための表現方法」
難しい…
この正規表現を使いこなすことができればたくさんの文章から特定の文字列を検索することが容易となるため習得したい。#正規表現とは
例えば電話番号
0120-828-828(やずや)を口頭で表現するには
「はじめに数字が4桁あって、ハイフンがあって、数字が3桁あって、またハイフンがあって、数字が3桁ある感じ」
となるこれを1つの形式で表現すると
**’/\d{4}-\d{3}-\d{3}/’**
となる。
短くなり便利そうだが、なんせ分かり辛い#メタ文字
正規表現で使用する文字の中で特に注意すべきものが「メタ文字」である“`index.html
. ^ $ [ ] * + ? | ( )
“`メタ文字は
aやb、1や2といった一般的な文字と違い、文字以上に特別な意味を含んだ文字であるメタ文字の前にバックスラッシュ(\)を入れることによって一般的な文字列として表現できる
“`index.html
\. \^ \$
laravel新規プロジェクト環境設定+認証機能
#Laravel新規プロジェクト作成(laravel7)
まずは、ターミナルで以下のコマンドを打ってプロジェクトを作成していく。
“`
$ composer create-project “laravel/laravel=7.*” <プロジェクト名>
“`次はpostgresでDBを作成(postgresインストール済みとする)
“`
//ログイン
psql -d postgres//DB一覧
\l//DB作成
# create database DB名;
//CREATE DATABASE と表示されたらOK
“`次に.envファイルの編集
“`
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=先ほどpostgresで作成したDB名
DB_USERNAME=postgres
DB_PASSWORD=
“`php artisan migrate を実行
“`
$ php artisan migrate
“`postgresにusersテーブルが作られているか
perse_urlを使ってURLパラメーターが含まれたURLで適切なファイルを読み込む方法
#はじめに
現在phpを使ってバックエンドの基礎を学習しています。
その中で、つまづいたポイントと対処法を記事にします。#環境
MAMP(Apache、MySQL、PHP)を使ってバックエンド開発
#URLパラメーター
PHPを使ってバックエンド開発を勉強していますが、
URLの末尾に?をつけてパラメーターを渡すことで、リダイレクトした先の表示を柔軟に変更させることができます。例えば
“`
/hoge/bar/foo?var=1000
“`のようなURLにGETリクエストを送信した場合、
“`
$_GET[‘var’]
“`
というグローバル変数に、1000が格納されるので、これを使って画面表示を変化させることができます。例えば、example.view.phpに次のようなコードを記述してみます。
“`
“`
これを使って、example.control
【PHP】コメントとコメントアウト
## コメントとコメントアウトとは?
コメントとはプログラムの中に記載された処理以外の注釈のことをいいます。
また、コメントアウトはコードをコメント化することで、コードとして認識されないようにしておくことを指す言葉です。## 一行コメント(//)
“`
“`## 一行コメント(#)
シェルやCSVファイルのコメントを書くときによく使用されます。
基本上の「//」を使用します。“`
“`## 複数行コメント(/* */)
“`
“`## 不要なソースコードをコメントアウト
“`
“`## まとめ
全てのソースコードにコメントを記載する必要はありませんが、わかりにくい箇所は必ずコメントを記載するようにしましょう。
半年前の自
phpのroutingライブラリAltorouterの紹介
## モチベーション
webアプリケーションのよくあるパターンは、`index.php`で処理を受けたらURIに応じてルーティングしてリクエストされた処理を実行するというものですが、フレームワークを使っていないアプリケーションの場合、URIがそのまま、実行されるスクリプトのファイル名になっているケースがあります(hoge.com/login.phpみたいな感じ)。こういったアプリケーションの保守をしやすくするためにルーティングを入れたかったので`AltoRouter`というライブラリを(超基本的な使い方だけですが)検証してみました。## Altorouterとは
klein.phpに影響を受けたルーティングライブラリだそうです。[公式ドキュメント](http://altorouter.com/)
[類似ライブラリとの比較](https://php.libhunt.com/compare-fastroute-vs-altorouter)
## サンプルリポジトリ
https://github.com/isanasan/test_altorouter## 導入
compos
Laravelのmigrationでtimestamp型がInvalid default value for ”エラー
以下のマイグレーションファイルを作成し実行した。
“`
public function up()
{
Schema::create(‘events’, function (Blueprint $table) {
$table->id();
$table->string(‘name’, 255);
$table->timestamp(‘start_datetime’);
$table->timestamp(‘end_datetime’);
$table->timestamps();
});
}
“`すると、以下のエラーが発生した。
ちなみにこのSQLをDBに直接実行すると正常にテーブル作成が完了する。
なのでSQLのエラーと言うよりLaravelのエラー。“`
SQLSTATE[42000]: Syntax error or access violation: 1067 Invalid default value for ‘end_datetime’ (SQL: create table `events` (`id` big
【PHP】配列はタンスをイメージするとわかりやすいかもしれない〜添字配列編〜
# はじめに
PHPを勉強し始めたので、復習とメモ代わりに学んだことをまとめています。
今回は添字配列について。間違いやもっと良い方法があれば教えていただけますと幸いです。# 配列とは
* 複数の値をまとめ`キー`と`値`のペアにしている。
* `キー`と`値`がペアになっているデータを配列の`要素`といい、配列には要素が追加された順番に並んでいる。
* 配列にはすべでのデータ型(数字、文字列など)の値を格納することができる。
* PHPには`添字配列(インデックス配列)`と`連想配列`の2種類がある。## 私なりのイメージ
配列を「タンス」に見立てて、[0]段目(添字)の引き出しにはTシャツ(要素)、[1]段目の引き出しにはジーンズ、[2]段目の引き出しには靴下……というようにデータを格納しています。# 添字配列の定義の仕方
## array関数を使う
arrayは配置や整列という意味の単語で、array関数を利用して変数に代入することのより定義することができます。“`php5
$clothes = array(“シャツ”, “ジーンズ”, “靴下”);
“`
元料理人でプログラミング初心者の僕がMacでPHPを始めるまで。
#Mac HomebrewでPHPをインストールする
#####1.ターミナルでHomebrewを最新の状態にする。
“`
brew upgrade
“`#####2.実行してPHP 7.4をインストールする。
“`
brew install php@7.4
“`
#####3.PHPのバージョンを確認する。“`
php -v
“`ここでバージョン確認したところこんな文が表示されました。
“`
WARNING: PHP is not recommended
PHP is included in macOS for compatibility with legacy software.
Future versions of macOS will not include PHP.
PHP 7.3.24-(to be removed in future macOS) (cli) (built: Dec 21 2020 21:33:25) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v
PHPのデータ型一覧
## PHPのデータ型とは
データ型とはPHPの値の性質を表したものです。
例えば、値が「**’**こんにちは**’**」や「**’**おはよう**’**」等のような文字であればデータ型は文字列(string)となり、「-1」や「100」、「3.14」等の数値であればデータ型は整数型(integer)や浮動小数点数型(float, double)となります。## PHPの型付け
プログラムにおいてデータ型は非常に重要です。
データ型を正しく理解することで、その値を正しく処理するコードを書けます。
PHPは型付けの弱い言語で、データ型を宣言しなくてもPHPがデータ型を自動判別してくれます。
そのため、PHPではデータ型を宣言せずとも自動的にデータ型の変換を行います。
このようなデータ型の変換のことをジャグリングと言います。PHPがデータ型を自動判別して処理してくれますが、その反面意図しないデータ型として認識される場合があるので注意が必要です。## PHPの8つのデータ型
| データ型 | 型の種類 | データ例
Laravelのルーティングでアノテーションを使う方法
# この記事は?
Laravelのルーティングはweb.phpを使うのが一般的ですが、[LaravelCollective/annotations](https://github.com/laravelcollective/annotations)を使うことでflaskやSpring Bootのようにメソッドにアノテーションをつけてルーティングさせることが可能なので試してみました。
この記事はアノテーションでのルーティングを行うことのメリットとその方法についてまとめます。# アノテーションでルーティングするメリット
web.phpを使用したルーティングは1ファイルでルーティングを管理することから一覧性があって見やすい反面、複数人で開発を行おうとしたときにweb.phpがコンフリクトする確率が高くなってしまいます。
アノテーションを使用してルーティングを記載するファイルが分かれることで、コンフリクトが減らすことができます。# アノテーションでルーティングする方法
## 前提
この記事ではLaravelでのプロジェクト作成ができることと何らかの方法でデプロイする方法を持っていること
laravel5.8 注文履歴
laravel で注文履歴を作成する機会があったのでアウトプットしていこうと思います。
#仕様
①商品検索画面で商品を選択し、カートに入れます。
②カートに入れた商品を買いたい場合は確定ボタンを押します。
③確定した商品は注文履歴に表示されます。#画面
▪️全て注文履歴を表示
![TGi3⅞ HORXaRT.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/700700/6bc7f920-8c60-e5d6-bc8e-fc460b08cde2.png)
▪️直近3ヶ月の注文履歴を表示
![£ CONTERT.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/700700/89dc9479-4a5b-689e-3845-7f65d4f1302f.png)
#ER図
![EXt orders.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.co
WindowsのPostgreSQLで初めてテーブルを作った件について
#はじめに
前回はDBをつくるところまでした。https://qiita.com/Atsulabo/items/cfb089d1ccd5f82ab34d
今回はテーブルをつくって、出力するところまでやっていこうと思う
どんな形で出力すればいいのだろう。。。
初心者にはまだまだわからないところだらけ#まずは作ったDBにログイン
“`
psql -U (登録したロール) (新規作成したDB)
“`
無事ログイン。
テーブル作成に入ります。
とはいっても仕事で使ってるのを使うわけにもいかないので、、、ひとまずメンバーリストというテーブル(名前はmember)を作成すると想定して作る。
id
name
age
mailaddress上のリンクによると、数字型・文字列型があるみたいだけど、
id(char(3))
name(varchar(15))
age(varchar(3))
mailaddress(text)という感じにする。
というわけでコマンド
“`
CREATE TABLE member
(id char(3) not null,
name var
Laravel で別のControllerのメソッドを呼び出す
呼び出したい側のControllerの頭に
`use App\Http\Controllers\HogeController;`呼び出したいところに
`HogeController::hogemethod($a);`と書けば呼び出せた。
phpでLEFT関数とRIGHT関数
ExcelにあってphpにはないLEFT関数とRIGHT関数がほしかったので。
“`php:my_function.php
function left($str, $num, $encoding = “UTF-8”){
return mb_substr($str, 0, $num, $encoding);
}function right($str, $num, $encoding = “UTF-8”){
return mb_substr($str, $num * (-1), $num, $encoding);
}echo left(“あいうえお”, 3); // → あいう
echo right(“あいうえお”, 3); // → うえお
“`
共同開発まとめ
初めに
—————————————
実務に近い経験を積みたい!と思い、共同開発のコミュニティに参加しECサイトを作成しました。
共同開発するにあたって苦労した点や、各機能実装の際に参考にした記事や教材について記事にまとめました。アプリの概要
—————————————
ご当地の美味しいものをお取り寄せできるECサイト。
アプリURL https://www.tomtom-blog.net
※テストアカウント
メールアドレス test@co.jp パスワード123456789123でログインできます。
GitHub https://github.com/KawataTsutomu/yanbaru_ec_traning**使用画面のイメージ**
![使用イメージ.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/983658/56b10107-0261-2975-c59f-d679393e0a
PHPで配列の要素を部分一致で検索する方法 ( preg_grep )
# PHPで配列の要素を検索する方法
学べること
– preg_grepの使い方
– 変数を検索する場合の正規表現
## preg_grep検索してマッチする配列の要素を返します。
– 使い方“` php
$array = [‘hoge’,’huga’];
$result = preg_grep(‘/ho/’,$array);
var_dump($result);//出力結果
// array(1) {
// [0] =>
// string(4) “hoge”
// }
“`– 解説
preg_grepの第一引数には検索する文字列、第二引数には配列を入れます。
ここでは配列の要素で”ho”が含まれるものを検索しています。$resultには検索にマッチした要素が配列として入っています。ちなみに、第一引数の検索する文字列を囲ってるスラッシュはデリミタ(区切り文字)と呼ばれ、スラッシュじゃなくてもかまいません。例えば`'{ho}’`でもOK.
## 検索文字列が変数の時
それでは、検索する文字列が変数だった場合はどうしましょう。
上記に従うと、
PHP 基礎 Part1
#PHPとは
HTMLは決まった画像しか表示できませんが、
PHPは見る人や状況に応じてテキストを変えることができます。PHPはHTMLに組み込んで使うことができます。
の中に命令を書いていきます。
文末にはセミコロンを使うようにして下さい。出力する時はechoを使うようにしましょう。
##変数
変数はPHPでは$を使って書いていきます。
##文字列の連結
PHPでは文字列を連結する時は.を使います。
##変数展開
文字列の中に変数を入れる時は変数展開をしますが、
{変数}を使いましょう。##配列
配列の時は$配列名 = array(値1,値2…)を使います。
配列の末に値を追加する時は$配列名[]= ‘値’を記述しましょう。##foreach
foreachは()の最初に配列名を入れて、asの後に変数を入れる。
連想配列の時は(配列名 as キー変数 => 値変数)##関数
関数はまとまった処理を行い、値を返すモノです。
組み込み関数と言って、予め関数が入っています。いくつかの組み込み関数を紹介します。
echo str
PHP8.1でarray_is_listが追加されたよ
# はじめに
こんにちは。
熱帯夜で全然寝むれず、寝不足だと暑さがより一層堪えますね…筆者です :sob:さて、今回はPHP8.1で追加された関数`array_is_list`を紹介しようと思います。
# array_is_listとは
こちら↓https://wiki.php.net/rfc/is_list
0から始まる連続した整数がkeyになっているかどうかを判定する関数です。
# 使用例
“`php
‘apple’, ‘orange’]); // true
array_is_list([0 => ‘apple’, 1 => ‘orange’]); // true// 0から始まっていない
Laravel のリリーススケジュールとサポート期限
ソース: Laravel公式 サポートポリシー(8.xリリースノート)
https://laravel.com/docs/8.x/releases#support-policy
## 現状(2021年7月時点)まとめ
LaravelにはLTS(Long Term Support:長期サポート)版があります。
現行のLTSは6.xで、**次のLTSは2022年1月25日リリース予定の9.x**になります。**7.xはBug FixesもSecurity Fixesもサポート期限が終了している**ので
今利用すべきはLTSの6.xか、アップデートするなら8.xになります。
もし今利用しているのが7.xであれば8.xにアップグレードを行う必要があります。現行ではLTSである6.xの方が後発の7.xよりサポート期限が長くなっています。
そのため頻繁にアップグレードできない場合はLTSからLTSへ上げていくのが定番ですが、
次回LTSの9.xより10.xの方がBug Fixes期限は長く、Security Fixes期限は同じになっています。
Laravelのアップグレード作業は1
ec2のamazon linux2 にnginx+php-fpm+php7.4+phalcon4 セットアップ
#ログインしてrootで作業します
“`
timedatectl set-timezone Asia/Tokyo
timedatectl status
localectl set-locale LANG=ja_JP.UTF-8yum update
amazon-linux-extras install php7.4
amazon-linux-extras install nginx1
“`
epelのインストール設定がいろいろ調べるとありますが、AmazonLinux2のamazon-linux-extras に存在したので、それをインストールして、有効にすればOKです。
“`
amazon-linux-extras install epelyum-config-manager –enable epel
yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum install php-mbstring
yum install pcre-devel
curl