質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

2342閲覧

phpをコマンドプロンプトで実行する際に静的メソッドをコマンド上で呼び出す

web11

総合スコア52

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/08/23 08:30

編集2020/08/23 08:57

phpをコマンドプロンプトで実行する際に静的メソッドをコマンド上で呼び出すことは可能でしょうか?(※シンボリックリンクを作成します)
イメージとしてlaravelのコマンドのような事がしたいです。
回答よろしくおねがいします。

php

1//管理者でコマンド実行 2php SymbolicLink.php 3 4//SymbolicLink.phpの中身 5<?php 6class SymbolicLink 7{ 8 public static $target; 9 public static $link; 10 public static function index() 11 { 12 self::$target = __DIR__ . '/webroot/index.php'; 13 self::$link = __DIR__ . '/index.php'; 14 if (is_link(self::$link)) { 15 return readlink(self::$link); 16 } else { 17 return symlink(self::$target, self::$link); 18 } 19 } 20}

##追記情報
以下のurlを参考にコマンド上から実行すれば一応実行されましたが、こちらよりいい方法はありますでしょうか?
https://www.it-swarm.dev/ja/php/%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3%E3%81%8B%E3%82%89php%E9%96%A2%E6%95%B0%E3%82%92%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%99/1070443891/

php

1//管理者でコマンド実行 2php -r "require 'SymbolicLink.php'; SymbolicLink::index();"

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

phpをコマンドプロンプトで実行する際に静的メソッドをコマンド上で呼び出すことは可能でしょうか?

当然出来ます。

以下のurlを参考にコマンド上から実行すれば一応実行されましたが、こちらよりいい方法はありますでしょうか?

どの辺が不満なのでしょうか?

普通は、SymbolicLink::index();までファイル中に書いて、php SymbolicLink.phpで実行すると思いますが、ファイル中にSymbolicLink::index();を書きたくないのであれば、その方法がベストだと思います。

PHPでWindowsのシンボリックリンクが作れるとは知りませんでした。管理者として実行しなくても出来るんですかね?

投稿2020/08/23 09:45

otn

総合スコア85762

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

web11

2020/08/23 09:54 編集

回答ありがとうございます。 どの辺が不満なのでしょうか? →「どの辺が不満かと言うと特に問題はないとは思うのですが自分自身PHPの初学者であるためベストプラクティスかどうか判断がつかずこのような質問になりました。」 いえ、コマンドプロントを管理者から実行しなくてはエラーになります。
otn

2020/08/23 09:51 編集

管理者で実行するなら、Windows標準装備のmklink コマンドでやれば簡単ですけど。 mklink リンク名 実体ファイル
otn

2020/08/23 10:06

> どの辺が不満かと言うと特に問題はないとは思うのですが なるほど。では、SymbolicLink::index();までファイル中に書いて、 php SymbolicLink.php が良いですね。 Windowsだとさらに拡張子PHPをphp.exeに関連付ければ、SymbolicLink.php だけで実行できます。 他の回答にあるように、引き数を使えば、コマンドラインから操作対象ファイルを指定することが出来ます。
web11

2020/08/23 10:34

丁寧にありがとうございます。 ただその方法だとSymbolicLink.phpにアクセスした際にも生成されてしまうのでちょっと問題なのかなと思ってました。
otn

2020/08/23 10:45 編集

ああ、そのファイルはコマンドラインからの操作専用ファイルじゃないんですね。 コマンドラインからの操作専用ファイルを作れば良いと思います。 あるいは、コマンドラインからとブラウザからで動作を変えるか。
web11

2020/08/23 10:51

なるほどーありがとうございます。
guest

0

ベストアンサー

PHP: $argv - Manual
使えばいいんじゃない?

イメージ説明

$argv[0]がphpファイルそのものの名前が、
$argv[1]以降にphpファイル以降につけたコマンドラインオプションが渡るということなので、
お望みのことができるかと思いますが。

投稿2020/08/23 08:47

編集2020/08/23 09:34
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

web11

2020/08/23 08:58

回答ありがとうございます。 申し訳ないのですが、こちらはどのようにして使うのでしょうか?
退会済みユーザー

退会済みユーザー

2020/08/23 09:05

示したページに、サンプルコードがありますので、お試しください。
web11

2020/08/23 09:57

ありがとうございます。どちらも有益でベストアンサーに悩みましたが、先に回答していただいたm6uさんを選ばせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問