composer のインストール方法は以下。ちょっと難しかもです。
https://getcomposer.org/download/
PhpSpreadsheet は以下を git clone すれば使えそうです。
https://github.com/PHPOffice/PhpSpreadsheet
・viewsでボタンを押したらcontrollerでxlsxの出力
質問は2点ありまして以下になります。
・リモートでのcomposerコマンドの実行方法。
・上記不可であれば、生phpもしくはcodeigniterでのxlsx出力方法
現在の開発の状況
・atomのremote-ftpを使用して開発
・php、codeigniterでの開発
・xlsx形式のファイルを出力したい
上記から以下に困っています。
・phpspreadsheetというライブラリをcomposerでインストールしたいが、リモート上の為composerコマンドの実行方法が分からない。
composer.jsonやcomposer.lockなどのファイルがそもそも存在していないので、もしかしたらcomposer自体インストールされていないかもです。
お時間ある方、お答えいただけると助かります。。
ローカル環境でcomposerとライブラリをインストールし、開発環境に移しました。
ですが、以下でエラーが出てしまいます。
$spreadsheet = new Spreadsheet();
原因はパスが通っていないことだと思います。
なので今回聞きたいことは、パスの通し方とパスの記載方法になります。
とりあえず状況を。。
ディレクトリは
app
-controllers
|-controller.php
ci
public
-他html
-index.php
shell
vendor
-composer
-phpoffice/phpspreadsheet
-autoload.php
conposer.json
composer.lock
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
use PhpOffice\PhpSpreadsheet\Spreadsheet;
class Order extends CI_Controller{
function download_xlsx(){
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Hello World !');
$writer = new Xlsx($spreadsheet);
$writer->save('hello world.xlsx');
}
require_once "vendor/autoload.php";
以上です。
ここでエラーが出てしまいます。
controllerで出力しようとしてるのがおかしいのでしょうか?
右も左も分からないので丸投げになってしまいますが、よろしくお願いします!
composer のインストール方法は以下。ちょっと難しかもです。
https://getcomposer.org/download/
PhpSpreadsheet は以下を git clone すれば使えそうです。
https://github.com/PHPOffice/PhpSpreadsheet
@kait0401
Questionerリモート接続している環境がどのようなものか分からないのですが、
SSHなどで接続できない環境の場合はcomposerコマンドも実行できないのではないかと思います。
それ以外でcomposerコマンドを実行するとなると、
例えばexec関数などを使ってPHPファイルからcomposerコマンドを実行するスクリプトを作ってアップロード、
そしてHTTPからそのスクリプトを実行するとかいかがでしょうか?
PHPから外部スクリプトを実行するのはセキュリティ上おすすめは出来ないですが。
もちろんリモート環境にcomposer本体がインストールされている必要はあります。
もしくはローカルでcomposerコマンドを実行してアップロードしてしまう方法はいかがですか?
composerでインストールしたパッケージはvendorディレクトリに入っています。
@kait0401
Questioner