SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
1 
PHP Conference 2014 東京 
5分でわかる!ownCloudアドオンの作り方 
株式会社ビーグッド・テクノロジー
髙橋 裕樹(たかはしゆうき) 
東京都八王子生まれ多摩育ち
BeGood Technology 
自己紹介 
1111999988880000年11110000月33331111日生まれ 
uuuukkkkiiiittttiiiiyyyyaaaannnn 
 経歴: システム運用4年・システム開発7年経験 
近頃はownCloudや他OSSを眺める担当 
 あだ名: マギー 
 ownCloudの好きな機能: External Storage 
 その他: PHPより、Java寄り
BeGood Technology 
活動紹介 
Japan ownCloud User Group (JOUG) 
 http://owncloud.jp/forum/ 
ownCloud 日本語サポート 
 http://owncloud.jp/service/our-supports
まずは、ownCloudの概要 
~What is ownCloud~ 
BeGood Technology
BeGood Technology 
What is ownCloud 
Dropboxとかオンラインストレージ 
サービスって、便利だけど、セキュ 
リティとか心配。 
NO IT CONTROL 
・Security 
・Governance 
NO IT CONTROL 
・Storage and Servers 
・User Provisioning
BeGood Technology 
What is ownCloud 
専用の環境に構築すれば 
良いじゃない!
BeGood Technology 
What is ownCloud 
ownCloudは専用の環境に 
オンラインストレージを構築する 
ためのPHPアプリケーション。 
IT MANAGED 
・Storage and Servers 
・User Provisioning 
IT MANAGED 
・Security 
・Governance
BeGood Technology 
What is ownCloud 
実際に作ったのはこの人 
Frankさん 
(Frank Karlitschek)
BeGood Technology 
Why is ownCloud 
1 
オープンソース
無料・商用での利用が可能なデュアルライセンスを採用 
したオープンソースです。 
2 
操作性
ファイルのDragDropやマルチデバイス対応等、DropBox 
と同等の操作が行えます。 
3 
汎用性
クラウド環境や、クローズドな自社サーバー等設置 
環境を選びません。 
4 
拡張性
WebDavやアドオン機構、多数のAPIを搭載しているので、 
PHPの実装で機能を拡張できます。
BeGood Technology 
Why is ownCloud 
1 
オープンソース
無料・商用での利用が可能なデュアルライセンスを採用 
したオープンソースです。 
2 
操作性
ファイルのDragDropやマルチデバイス対応等、DropBox 
と同等の操作が行えます。 
3 
汎用性
クラウド環境や、よりセキュアな自社サーバー等設置 
環境を選びません。 
4 
拡張性
WebDavやアドオン機構、多数のAPIを搭載しているので、 
PHPの実装で機能を拡張できます。
ownCloudアドオンの作り方 
~ How to cook ownCloud app ~ 
BeGood Technology
BeGood Technology 
This Cooks Goal 
何を作るか 
 単純な「Hello World」アプリケー 
ションです 
何を知るか 
 MVC(app framework)を使っ 
たアプリケーションの書き方と、 
配置方法を知る事ができます 
HELLO
mysql CREATE DATABASE owncloud; 
mysql GRANT ALL PRIVILEGES ON owncloud.* 
TO owncloud@127.0.0.1 IDENTIFIED BY 
owncloud; 
BeGood Technology 
Pre-requisites 
LAMP環境構築して、Python3イン 
ストールおいてください。 
以下のSQL叩いておいてください。 
pipから”ocdev”をインストールして 
おいてください。 
githubからソースコードダウンロード 
しておいてください。(tag : v7.0.2) 
PHP5.4 
# sudo pip3 install ocdev
BeGood Technology 
Directory Overview(owncloud core) 
owncloud 
(github.com/owncloud/core.git) 
core・config・l10n・themes・etc.. 
apps 
3rdparty 
(github.com/owncloud/3rdparty.git)
BeGood Technology 
Directory Overview(owncloud core) 
owncloud 
(github.com/owncloud/core.git) 
core・config・l10n・themes・etc.. 
apps 
3rdparty 
(github.com/owncloud/3rdparty.git) 
ここにアプリを実装します 
ここに移動してください。 
# sudo su - 
# cd /var/www/html/owncloud/apps
# ocdev startapp HelloWorld ¥ 
--mail hoge@example.com ¥ 
--author hoge ¥ 
--description My first app ¥ 
--owncloud 7 
# chown –R apache:apache hellowold 
BeGood Technology
BeGood Technology 
Directory Overview(app) 
helloworld appinfo 
css, img, js 
controller 
templates 
tests 
Contains app metadata 
and configuration 
Contains the controllers 
Contains the templates 
(Template and Twig) 
Contains the tests
BeGood Technology 
Activation 1
BeGood Technology 
Activation 2
BeGood Technology 
Activation 3 
出来上がり!!
BeGood Technology 
Hooks 
SSSSeeeeccccttttiiiioooonnnn LLLLiiiisssstttteeeennnn CCCCaaaallllllllbbbbaaaacccckkkk 
UserManager preCreateUser 
postCreateUser 
(string $uid, string $password) 
(¥OC¥User¥User $user) 
preLogin 
postLogin 
(string $user, string $password) 
(¥OC¥User¥User $user) 
logout (¥OC¥User¥User $user) 
Filesystem preWrite 
postWrite 
(¥OCP¥Files¥Node $node) 
preCreate 
postCreate 
(¥OCP¥Files¥Node $node) 
preDelete 
postDelete 
(¥OCP¥Files¥Node $node) 
preCopy、postCopy 
preRename、postRename 
(¥OCP¥Files¥Node $source, 
¥OCP¥Files¥Node $target) 
Filesystem Scanner scanFile、scanFolder (string $absolutePath)
BeGood Technology 
WebDav 
MMMMeeeetttthhhhoooodddd UUUURRRRIIII OOOOppppttttiiiioooonnnn 
PROFIND /remote.php/webdav/Directory 
GET /remote.php/webdav/Path 
PUT /remote.php/webdav/Path 
MOVE /remote.php/webdav/Path Destination:/remote.php/webdav/ 
Path 
COPY /remote.php/webdav/Path Destination:/remote.php/webdav/ 
Path 
PROPPATCH /remote.php/webdav/Path 
MKCOL /remote.php/webdav/Directory 
DELETE /remote.php/webdav/Directory
BeGood Technology 
Etc.. 
SSSSeeeeccccttttiiiioooonnnn DDDDeeeessssccccrrrriiiippppttttiiiioooonnnn 
Classloader The classloader is provided by ownCloud and loads all your 
classes automatically. 
Background Jobs 
(Cron) 
Background/cron jobs are usually registered in the 
appinfo/app.php by using the addRegularTask method 
Logging The logger can be injected from the ServerContainer 
Dependency Injection This class extends Pimple for reusability To use this class, 
extend your own container from this. 
External API The external API inside ownCloud allows third party developers 
to access data provided by ownCloud apps. 
Translation Translation String are shown by editing l10n File To translate 
Theming Themes can be used to customize the look and feel of 
ownCloud.
BeGood Technology 
Try 
Startup 
 https://aws.amazon.com/marketplace/pp/B00F8I7IXG/ 
v7.0.2を選択 
してください 
(申請中。。) 
Sample 
 https://github.com/ukitiyan/helloworld
BeGood Technology 
ご清聴 
ありがとうございました。

Más contenido relacionado

La actualidad más candente

03.owncloudのエコシステム
03.owncloudのエコシステム03.owncloudのエコシステム
03.owncloudのエコシステムTetsurou Yano
 
「おれのクラウド」今日から始めるオブジェクトストレージ
「おれのクラウド」今日から始めるオブジェクトストレージ「おれのクラウド」今日から始めるオブジェクトストレージ
「おれのクラウド」今日から始めるオブジェクトストレージMasahito Zembutsu
 
ownCloud2015年まとめ
ownCloud2015年まとめownCloud2015年まとめ
ownCloud2015年まとめTetsurou Yano
 
MroongaとownCloudの良い関係 Groonga Meetup 2015
MroongaとownCloudの良い関係 Groonga Meetup 2015MroongaとownCloudの良い関係 Groonga Meetup 2015
MroongaとownCloudの良い関係 Groonga Meetup 2015Yuki Takahashi
 
OSC2014 東京 owncloud性能検証
OSC2014 東京 owncloud性能検証OSC2014 東京 owncloud性能検証
OSC2014 東京 owncloud性能検証Tetsurou Yano
 
ownCloudについて
ownCloudについてownCloudについて
ownCloudについてShinya Saita
 
あなたも「違いが分かる人」になりましょう! ~ Azure, AzureStack, AzureStack HCI ~
あなたも「違いが分かる人」になりましょう! ~ Azure, AzureStack, AzureStack HCI ~あなたも「違いが分かる人」になりましょう! ~ Azure, AzureStack, AzureStack HCI ~
あなたも「違いが分かる人」になりましょう! ~ Azure, AzureStack, AzureStack HCI ~Masahiko Ebisuda
 
How to use PTI & IBRS patch
How to use PTI & IBRS patchHow to use PTI & IBRS patch
How to use PTI & IBRS patchYuichiro Naito
 
2017-11-15 OpenStack最新情報セミナー Lightning Talk OpenStack環境における通信高速化 ~超入門~
2017-11-15 OpenStack最新情報セミナー Lightning Talk OpenStack環境における通信高速化 ~超入門~2017-11-15 OpenStack最新情報セミナー Lightning Talk OpenStack環境における通信高速化 ~超入門~
2017-11-15 OpenStack最新情報セミナー Lightning Talk OpenStack環境における通信高速化 ~超入門~Takeharu Sato
 
Azure vm の可用性を見直そう
Azure vm の可用性を見直そうAzure vm の可用性を見直そう
Azure vm の可用性を見直そうShuheiUda
 
LagopusとAzureとIPsecとDPDK
LagopusとAzureとIPsecとDPDKLagopusとAzureとIPsecとDPDK
LagopusとAzureとIPsecとDPDKShuheiUda
 
AI分野におけるコンテナオーケストレーションとは
AI分野におけるコンテナオーケストレーションとはAI分野におけるコンテナオーケストレーションとは
AI分野におけるコンテナオーケストレーションとはTetsurou Yano
 
Recap: Windows Server 2019 Failover Clustering
Recap: Windows Server 2019 Failover ClusteringRecap: Windows Server 2019 Failover Clustering
Recap: Windows Server 2019 Failover ClusteringKazuki Takai
 
今日から始めるXen仮想化入門
今日から始めるXen仮想化入門今日から始めるXen仮想化入門
今日から始めるXen仮想化入門VirtualTech Japan Inc.
 
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話Hibino Hisashi
 
Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~
Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~
Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~ShuheiUda
 
データホテル・フルマネージドホスティング サービスを支えるOSSと、活用事例
データホテル・フルマネージドホスティング サービスを支えるOSSと、活用事例データホテル・フルマネージドホスティング サービスを支えるOSSと、活用事例
データホテル・フルマネージドホスティング サービスを支えるOSSと、活用事例NHN テコラス株式会社
 
【第20回セキュリティ共有勉強会】Amazon FSx for Windows File Serverをセキュリティ観点で試してみたお話
【第20回セキュリティ共有勉強会】Amazon FSx for Windows File Serverをセキュリティ観点で試してみたお話【第20回セキュリティ共有勉強会】Amazon FSx for Windows File Serverをセキュリティ観点で試してみたお話
【第20回セキュリティ共有勉強会】Amazon FSx for Windows File Serverをセキュリティ観点で試してみたお話Hibino Hisashi
 
VyOSの開発とか運用の話
VyOSの開発とか運用の話VyOSの開発とか運用の話
VyOSの開発とか運用の話Shintaro Hasunuma
 
MySQL5.6でGTIDを試してそっと閉じた
MySQL5.6でGTIDを試してそっと閉じたMySQL5.6でGTIDを試してそっと閉じた
MySQL5.6でGTIDを試してそっと閉じたEmma Haruka Iwao
 

La actualidad más candente (20)

03.owncloudのエコシステム
03.owncloudのエコシステム03.owncloudのエコシステム
03.owncloudのエコシステム
 
「おれのクラウド」今日から始めるオブジェクトストレージ
「おれのクラウド」今日から始めるオブジェクトストレージ「おれのクラウド」今日から始めるオブジェクトストレージ
「おれのクラウド」今日から始めるオブジェクトストレージ
 
ownCloud2015年まとめ
ownCloud2015年まとめownCloud2015年まとめ
ownCloud2015年まとめ
 
MroongaとownCloudの良い関係 Groonga Meetup 2015
MroongaとownCloudの良い関係 Groonga Meetup 2015MroongaとownCloudの良い関係 Groonga Meetup 2015
MroongaとownCloudの良い関係 Groonga Meetup 2015
 
OSC2014 東京 owncloud性能検証
OSC2014 東京 owncloud性能検証OSC2014 東京 owncloud性能検証
OSC2014 東京 owncloud性能検証
 
ownCloudについて
ownCloudについてownCloudについて
ownCloudについて
 
あなたも「違いが分かる人」になりましょう! ~ Azure, AzureStack, AzureStack HCI ~
あなたも「違いが分かる人」になりましょう! ~ Azure, AzureStack, AzureStack HCI ~あなたも「違いが分かる人」になりましょう! ~ Azure, AzureStack, AzureStack HCI ~
あなたも「違いが分かる人」になりましょう! ~ Azure, AzureStack, AzureStack HCI ~
 
How to use PTI & IBRS patch
How to use PTI & IBRS patchHow to use PTI & IBRS patch
How to use PTI & IBRS patch
 
2017-11-15 OpenStack最新情報セミナー Lightning Talk OpenStack環境における通信高速化 ~超入門~
2017-11-15 OpenStack最新情報セミナー Lightning Talk OpenStack環境における通信高速化 ~超入門~2017-11-15 OpenStack最新情報セミナー Lightning Talk OpenStack環境における通信高速化 ~超入門~
2017-11-15 OpenStack最新情報セミナー Lightning Talk OpenStack環境における通信高速化 ~超入門~
 
Azure vm の可用性を見直そう
Azure vm の可用性を見直そうAzure vm の可用性を見直そう
Azure vm の可用性を見直そう
 
LagopusとAzureとIPsecとDPDK
LagopusとAzureとIPsecとDPDKLagopusとAzureとIPsecとDPDK
LagopusとAzureとIPsecとDPDK
 
AI分野におけるコンテナオーケストレーションとは
AI分野におけるコンテナオーケストレーションとはAI分野におけるコンテナオーケストレーションとは
AI分野におけるコンテナオーケストレーションとは
 
Recap: Windows Server 2019 Failover Clustering
Recap: Windows Server 2019 Failover ClusteringRecap: Windows Server 2019 Failover Clustering
Recap: Windows Server 2019 Failover Clustering
 
今日から始めるXen仮想化入門
今日から始めるXen仮想化入門今日から始めるXen仮想化入門
今日から始めるXen仮想化入門
 
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
 
Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~
Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~
Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~
 
データホテル・フルマネージドホスティング サービスを支えるOSSと、活用事例
データホテル・フルマネージドホスティング サービスを支えるOSSと、活用事例データホテル・フルマネージドホスティング サービスを支えるOSSと、活用事例
データホテル・フルマネージドホスティング サービスを支えるOSSと、活用事例
 
【第20回セキュリティ共有勉強会】Amazon FSx for Windows File Serverをセキュリティ観点で試してみたお話
【第20回セキュリティ共有勉強会】Amazon FSx for Windows File Serverをセキュリティ観点で試してみたお話【第20回セキュリティ共有勉強会】Amazon FSx for Windows File Serverをセキュリティ観点で試してみたお話
【第20回セキュリティ共有勉強会】Amazon FSx for Windows File Serverをセキュリティ観点で試してみたお話
 
VyOSの開発とか運用の話
VyOSの開発とか運用の話VyOSの開発とか運用の話
VyOSの開発とか運用の話
 
MySQL5.6でGTIDを試してそっと閉じた
MySQL5.6でGTIDを試してそっと閉じたMySQL5.6でGTIDを試してそっと閉じた
MySQL5.6でGTIDを試してそっと閉じた
 

Similar a 5分でわかる!ownCloudアドオンの作り方

オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証
オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証
オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証Tetsurou Yano
 
はじめてのCodeIgniter
はじめてのCodeIgniterはじめてのCodeIgniter
はじめてのCodeIgniterYuya Matsushima
 
[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見Yosuke HASEGAWA
 
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築Hideharu MATSUFUJI
 
今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集Wataru NOGUCHI
 
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Takako Miyagawa
 
オープンソースカンファレンス OSC 2014 エンタープライズ 東京 ownCloud 法人向けオンラインストレージ マルチデバイスファイル共有ソリューション
オープンソースカンファレンス OSC 2014 エンタープライズ 東京 ownCloud 法人向けオンラインストレージ マルチデバイスファイル共有ソリューションオープンソースカンファレンス OSC 2014 エンタープライズ 東京 ownCloud 法人向けオンラインストレージ マルチデバイスファイル共有ソリューション
オープンソースカンファレンス OSC 2014 エンタープライズ 東京 ownCloud 法人向けオンラインストレージ マルチデバイスファイル共有ソリューションTetsurou Yano
 
Dockerを活用したリクルートグループ開発基盤の構築
Dockerを活用したリクルートグループ開発基盤の構築Dockerを活用したリクルートグループ開発基盤の構築
Dockerを活用したリクルートグループ開発基盤の構築Recruit Technologies
 
Java/Androidセキュアコーディング
Java/AndroidセキュアコーディングJava/Androidセキュアコーディング
Java/AndroidセキュアコーディングMasaki Kubo
 
OpenStack本番環境の作り方 - Interop 2016
OpenStack本番環境の作り方 - Interop 2016OpenStack本番環境の作り方 - Interop 2016
OpenStack本番環境の作り方 - Interop 2016VirtualTech Japan Inc.
 
20140523 jQuery基礎 (HTML5ビギナーズ)
20140523 jQuery基礎 (HTML5ビギナーズ)20140523 jQuery基礎 (HTML5ビギナーズ)
20140523 jQuery基礎 (HTML5ビギナーズ)Daisuke Yamazaki
 
Jenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdiJenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdi昌桓 李
 
Djangoフレームワークの紹介
Djangoフレームワークの紹介Djangoフレームワークの紹介
Djangoフレームワークの紹介Shinya Okano
 
Chrome DevTools.next
Chrome DevTools.nextChrome DevTools.next
Chrome DevTools.nextyoshikawa_t
 
運用に自動化を求めるのは間違っているだろうか
運用に自動化を求めるのは間違っているだろうか運用に自動化を求めるのは間違っているだろうか
運用に自動化を求めるのは間違っているだろうかMasahito Zembutsu
 
Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーEc cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーAyumu Kawaguchi
 
2010年11月27日土曜日FlexUserGroup勉強会 第125回 京都 Flex & Google App Engine for Java & ...
2010年11月27日土曜日FlexUserGroup勉強会 第125回 京都  Flex & Google App Engine for Java & ...2010年11月27日土曜日FlexUserGroup勉強会 第125回 京都  Flex & Google App Engine for Java & ...
2010年11月27日土曜日FlexUserGroup勉強会 第125回 京都 Flex & Google App Engine for Java & ...Sadao Tokuyama
 
Cakephpstudy5 hacks jp
Cakephpstudy5 hacks jpCakephpstudy5 hacks jp
Cakephpstudy5 hacks jpHiroki Shimizu
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejsTakayoshi Tanaka
 

Similar a 5分でわかる!ownCloudアドオンの作り方 (20)

オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証
オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証
オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証
 
はじめてのCodeIgniter
はじめてのCodeIgniterはじめてのCodeIgniter
はじめてのCodeIgniter
 
[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見
 
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
 
今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集
 
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
 
オープンソースカンファレンス OSC 2014 エンタープライズ 東京 ownCloud 法人向けオンラインストレージ マルチデバイスファイル共有ソリューション
オープンソースカンファレンス OSC 2014 エンタープライズ 東京 ownCloud 法人向けオンラインストレージ マルチデバイスファイル共有ソリューションオープンソースカンファレンス OSC 2014 エンタープライズ 東京 ownCloud 法人向けオンラインストレージ マルチデバイスファイル共有ソリューション
オープンソースカンファレンス OSC 2014 エンタープライズ 東京 ownCloud 法人向けオンラインストレージ マルチデバイスファイル共有ソリューション
 
Dockerを活用したリクルートグループ開発基盤の構築
Dockerを活用したリクルートグループ開発基盤の構築Dockerを活用したリクルートグループ開発基盤の構築
Dockerを活用したリクルートグループ開発基盤の構築
 
Java/Androidセキュアコーディング
Java/AndroidセキュアコーディングJava/Androidセキュアコーディング
Java/Androidセキュアコーディング
 
OpenStack本番環境の作り方 - Interop 2016
OpenStack本番環境の作り方 - Interop 2016OpenStack本番環境の作り方 - Interop 2016
OpenStack本番環境の作り方 - Interop 2016
 
20140523 jQuery基礎 (HTML5ビギナーズ)
20140523 jQuery基礎 (HTML5ビギナーズ)20140523 jQuery基礎 (HTML5ビギナーズ)
20140523 jQuery基礎 (HTML5ビギナーズ)
 
Jenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdiJenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdi
 
Djangoフレームワークの紹介
Djangoフレームワークの紹介Djangoフレームワークの紹介
Djangoフレームワークの紹介
 
Chrome DevTools.next
Chrome DevTools.nextChrome DevTools.next
Chrome DevTools.next
 
運用に自動化を求めるのは間違っているだろうか
運用に自動化を求めるのは間違っているだろうか運用に自動化を求めるのは間違っているだろうか
運用に自動化を求めるのは間違っているだろうか
 
Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーEc cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナー
 
2010年11月27日土曜日FlexUserGroup勉強会 第125回 京都 Flex & Google App Engine for Java & ...
2010年11月27日土曜日FlexUserGroup勉強会 第125回 京都  Flex & Google App Engine for Java & ...2010年11月27日土曜日FlexUserGroup勉強会 第125回 京都  Flex & Google App Engine for Java & ...
2010年11月27日土曜日FlexUserGroup勉強会 第125回 京都 Flex & Google App Engine for Java & ...
 
How To Drink Wsgi
How To Drink WsgiHow To Drink Wsgi
How To Drink Wsgi
 
Cakephpstudy5 hacks jp
Cakephpstudy5 hacks jpCakephpstudy5 hacks jp
Cakephpstudy5 hacks jp
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
 

5分でわかる!ownCloudアドオンの作り方

  • 1. 1 PHP Conference 2014 東京 5分でわかる!ownCloudアドオンの作り方 株式会社ビーグッド・テクノロジー
  • 2. 髙橋 裕樹(たかはしゆうき) 東京都八王子生まれ多摩育ち BeGood Technology 自己紹介 1111999988880000年11110000月33331111日生まれ uuuukkkkiiiittttiiiiyyyyaaaannnn 経歴: システム運用4年・システム開発7年経験 近頃はownCloudや他OSSを眺める担当 あだ名: マギー ownCloudの好きな機能: External Storage その他: PHPより、Java寄り
  • 3. BeGood Technology 活動紹介 Japan ownCloud User Group (JOUG) http://owncloud.jp/forum/ ownCloud 日本語サポート http://owncloud.jp/service/our-supports
  • 4. まずは、ownCloudの概要 ~What is ownCloud~ BeGood Technology
  • 5. BeGood Technology What is ownCloud Dropboxとかオンラインストレージ サービスって、便利だけど、セキュ リティとか心配。 NO IT CONTROL ・Security ・Governance NO IT CONTROL ・Storage and Servers ・User Provisioning
  • 6. BeGood Technology What is ownCloud 専用の環境に構築すれば 良いじゃない!
  • 7. BeGood Technology What is ownCloud ownCloudは専用の環境に オンラインストレージを構築する ためのPHPアプリケーション。 IT MANAGED ・Storage and Servers ・User Provisioning IT MANAGED ・Security ・Governance
  • 8. BeGood Technology What is ownCloud 実際に作ったのはこの人 Frankさん (Frank Karlitschek)
  • 9. BeGood Technology Why is ownCloud 1 オープンソース 無料・商用での利用が可能なデュアルライセンスを採用 したオープンソースです。 2 操作性 ファイルのDragDropやマルチデバイス対応等、DropBox と同等の操作が行えます。 3 汎用性 クラウド環境や、クローズドな自社サーバー等設置 環境を選びません。 4 拡張性 WebDavやアドオン機構、多数のAPIを搭載しているので、 PHPの実装で機能を拡張できます。
  • 10. BeGood Technology Why is ownCloud 1 オープンソース 無料・商用での利用が可能なデュアルライセンスを採用 したオープンソースです。 2 操作性 ファイルのDragDropやマルチデバイス対応等、DropBox と同等の操作が行えます。 3 汎用性 クラウド環境や、よりセキュアな自社サーバー等設置 環境を選びません。 4 拡張性 WebDavやアドオン機構、多数のAPIを搭載しているので、 PHPの実装で機能を拡張できます。
  • 11. ownCloudアドオンの作り方 ~ How to cook ownCloud app ~ BeGood Technology
  • 12. BeGood Technology This Cooks Goal 何を作るか 単純な「Hello World」アプリケー ションです 何を知るか MVC(app framework)を使っ たアプリケーションの書き方と、 配置方法を知る事ができます HELLO
  • 13. mysql CREATE DATABASE owncloud; mysql GRANT ALL PRIVILEGES ON owncloud.* TO owncloud@127.0.0.1 IDENTIFIED BY owncloud; BeGood Technology Pre-requisites LAMP環境構築して、Python3イン ストールおいてください。 以下のSQL叩いておいてください。 pipから”ocdev”をインストールして おいてください。 githubからソースコードダウンロード しておいてください。(tag : v7.0.2) PHP5.4 # sudo pip3 install ocdev
  • 14. BeGood Technology Directory Overview(owncloud core) owncloud (github.com/owncloud/core.git) core・config・l10n・themes・etc.. apps 3rdparty (github.com/owncloud/3rdparty.git)
  • 15. BeGood Technology Directory Overview(owncloud core) owncloud (github.com/owncloud/core.git) core・config・l10n・themes・etc.. apps 3rdparty (github.com/owncloud/3rdparty.git) ここにアプリを実装します ここに移動してください。 # sudo su - # cd /var/www/html/owncloud/apps
  • 16. # ocdev startapp HelloWorld ¥ --mail hoge@example.com ¥ --author hoge ¥ --description My first app ¥ --owncloud 7 # chown –R apache:apache hellowold BeGood Technology
  • 17. BeGood Technology Directory Overview(app) helloworld appinfo css, img, js controller templates tests Contains app metadata and configuration Contains the controllers Contains the templates (Template and Twig) Contains the tests
  • 20. BeGood Technology Activation 3 出来上がり!!
  • 21. BeGood Technology Hooks SSSSeeeeccccttttiiiioooonnnn LLLLiiiisssstttteeeennnn CCCCaaaallllllllbbbbaaaacccckkkk UserManager preCreateUser postCreateUser (string $uid, string $password) (¥OC¥User¥User $user) preLogin postLogin (string $user, string $password) (¥OC¥User¥User $user) logout (¥OC¥User¥User $user) Filesystem preWrite postWrite (¥OCP¥Files¥Node $node) preCreate postCreate (¥OCP¥Files¥Node $node) preDelete postDelete (¥OCP¥Files¥Node $node) preCopy、postCopy preRename、postRename (¥OCP¥Files¥Node $source, ¥OCP¥Files¥Node $target) Filesystem Scanner scanFile、scanFolder (string $absolutePath)
  • 22. BeGood Technology WebDav MMMMeeeetttthhhhoooodddd UUUURRRRIIII OOOOppppttttiiiioooonnnn PROFIND /remote.php/webdav/Directory GET /remote.php/webdav/Path PUT /remote.php/webdav/Path MOVE /remote.php/webdav/Path Destination:/remote.php/webdav/ Path COPY /remote.php/webdav/Path Destination:/remote.php/webdav/ Path PROPPATCH /remote.php/webdav/Path MKCOL /remote.php/webdav/Directory DELETE /remote.php/webdav/Directory
  • 23. BeGood Technology Etc.. SSSSeeeeccccttttiiiioooonnnn DDDDeeeessssccccrrrriiiippppttttiiiioooonnnn Classloader The classloader is provided by ownCloud and loads all your classes automatically. Background Jobs (Cron) Background/cron jobs are usually registered in the appinfo/app.php by using the addRegularTask method Logging The logger can be injected from the ServerContainer Dependency Injection This class extends Pimple for reusability To use this class, extend your own container from this. External API The external API inside ownCloud allows third party developers to access data provided by ownCloud apps. Translation Translation String are shown by editing l10n File To translate Theming Themes can be used to customize the look and feel of ownCloud.
  • 24. BeGood Technology Try Startup https://aws.amazon.com/marketplace/pp/B00F8I7IXG/ v7.0.2を選択 してください (申請中。。) Sample https://github.com/ukitiyan/helloworld
  • 25. BeGood Technology ご清聴 ありがとうございました。