前提
サイトAの作成
「フォームから送信すると、送信した内容がGoogle SpreadSheetに追記される」ようなサイトを
Composerにてフォルダ/vendor/を作成し、それを使って作成しました。
サイトBの作成
「フォームから送信すると、送信した内容が特定のGoogle Calendarに登録される」ようなサイトを
サイトAでフォルダ/vendor/にあたる、フォルダ/googlecalendar/を、参考サイトから流用し
それを使って作成しました。
サイトA | サイトB | |
---|---|---|
機能 | Google SpreadSheet | Google Calendar |
使用APIのフォルダ | /vendor/ | /googlecalendar/ |
サイトBにサイトA同様の機能追加
サイトBにサイトA同様の機能を追加してほしい旨の依頼があり、
サイトAのフォルダ/vendor/および該当記述を移動しました。
発生している問題・エラーメッセージ
サイトAのフォルダ/vendor/および該当記述をサイトBに移動したところ、
フォルダ/vendor/と、フォルダ/googlecalendar/の内部記述が競合するようで
先に記述した方のみ動作し、あとに記述した方は動作しません。
どちらを先にしても、先にした方のみの動作になってしまいます。
こちらを両方、動作するよう修正したいです。
何卒、お知恵をお貸しいただければ幸いです。
エラーメッセージ
Fatal error: Uncaught Error: Class 'Google_Service_Sheets' not found in /home/c0068587/public_html/cachie.jp/_test/thanks.php:1511 Stack trace: #0 /home/c0068587/public_html/cachie.jp/_test/thanks.php(1536): GoogleSheetsAPISample->__construct() #1 {main} thrown in /home/c0068587/public_html/cachie.jp/_test/thanks.php on line 1511
該当のソースコード
PHP
1<?php header("Content-Type:text/html;charset=utf-8"); ?> 2<?php 3//メールフォーム部分 4?> 5 6<?php 7require_once __DIR__.'/vendor/autoload.php'; 8//スプレッドシート追記処理(A) 9 10<?php 11require_once __DIR__.'/googlecalendar/google-api-php-client/src/Google/autoload.php'; 12//Googleカレンダー追記処理(B) 13?> 14
質問者の知識レベル
- PHPに関しては勉強中で、ネットの指南サイトから流用して使ったり少し調整程度はできるくらいのレベルです。
- Google APIの仕様についても知識が浅いです・・・
- ComposerはサイトAを作成する際、はじめて使用しました。
(普段はWPや、HTML/CSSを触ることが多いです)
試したこと
- 一方の「require_once DIR.'/~~/autoload.php';」をコメントアウトしただけでは動かない
バージョンが違うためなのか、内容そのものに差異があるためなのかわかりません
(A,Bどちらのものを残しても×)
- ** /vender/の中身を「"google/apiclient": "^2.7"」のものにしてみると A,Bどちらも動かなくなった**
これを両方動くようにできれば、一番理想なのですが・・・
- ** 名前空間を作ったりを試みたが、うまく動作せず**
ただの知識不足かもしれません
補足情報(FW/ツールのバージョンなど)
各ソースの詳細は、ほぼ下記の参考サイト通りとお考えください。
サイトA | サイトB | |
---|---|---|
機能 | Google SpreadSheet | Google Calendar |
使用APIのフォルダ | /vendor/ | /googlecalendar/ |
使用APIのバージョン | 2.0 | 1.1.7 |
参考にしたサイト | https://www.spiceworks.co.jp/blog/?p=10254 | https://qiita.com/niiyz/items/30fab61adc4fcf87b98a |
あなたの回答
tips
プレビュー