SlideShare uma empresa Scribd logo
1 de 21
ロード 第1章



 Cakephp2 study
    2011/6/25

   Ichikaway
自己紹介

Yasushi Ichikawa
@cakephper
http://d.hatena.ne.jp/cakephper
KANAEL


http://kanael.net
LOADING

•   ファイル探索
•   ファイルインポート(include, require)
•   インスタンス生成
アジェンダ

•   App::build()
•   App::import()
•   AutoLoading
•   LazyLoading
App::build()

•   app/bootstrap.phpに定義
•   標準以外の読み込みPATHを定義
     –   ex. 複数のプラグインフォルダを使いたい
App::build()
                                   1.3
App::build(array(
 'controllers' => array(
   '/home/user/app1/Controller',
   '/home/user/app2/Controller',
  )
))
                                   2.0
App::build(array(
 'Controller' => array(
   '/home/user/app1/Controller',
   '/home/user/app2/Controller',
  )
))
アジェンダ

•   App::build()
•   App::import()
•   AutoLoading
•   LazyLoading
App::import()

•   ファイルの読み込み(include/require)
    –   例 App::import('Controller', 'UserGroup');
•   ファイル探索
    –   1.3 : ディレクトリ再帰探索
    –   2.0 : 再帰探索しない
•   ファイルのインポート処理
    –   1.3:すぐにinclude, require
    –   2.0:クラス利用時にinclude, require
アジェンダ

•   App::build()
•   App::import()
•   AutoLoading
•   LazyLoading
Autoload
•   __autoload()
     –   未定義のクラス/インターフェイスを使用し
         ようとした時に 自動的にコールされる
     –   new Hoge()するまでrequireしない
          •   インポート負荷の軽減

     function __autoload($class_name) {
         include $class_name . '.php';
     }
     $obj = new MyClass1();
     $obj2 = new MyClass2();
Autoload
•   App::uses('EmailComponent', 'Controller/Component')
     –   クラス名と格納場所を登録するのみ
•   new EmailComponent()した時にautoloadの仕組みを
    使ってincludeされる
     –   App::load()がspl_autoload_register()から呼び出され
         る
     –   cake/Cake/bootstrap.php
         •   spl_autoload_register(array('App', 'load'));
Autoload
Autoloadについて詳しく知りたい人は
アジェンダ

•   App::build()
•   App::import()
•   AutoLoading
•   LazyLoading
LazyLoading

•   AutoLoadingはinclude/requireのタイミング
•   LazyLoadingはインスタンス生成のタイミング
LazyLoading

•    CakePHP1.3
      –    アクションで利用しないモデルオブジェクトまで生成

    class PostsController extends AppController {
          public $uses = array('Post','Event');
        function index() {
            $this->Post->recursive = 0;
            $this->set('posts', $this-
    >paginate());
        }
LazyLoading

•   CakePHP1.3
     –   cake/dispatcher.php
     –   controller::constructClasses()
     –   controller::loadModel()
     –   ClassRegistry::init()
           •   new Model()
LazyLoading

•   CakePHP2.0
     –   Controller::usesで定義してもモデルオブジェク
         トは生成されない
     –   コントローラのプロパティ変数($this->Model)
         にアクセスした時に初めてオブジェクト生成
          •   不要なオブジェクト生成を回避
          •   マジックメソッドを利用
LazyLoading

•   CakePHP2.0
     –   $this->Post->find(); //controller
     –   Controller::__get() でisset()
     –   Controller::__isset()
     –   Controller::loadModel()
     –   ClassRegistry::init()
           •   new Model()
Conclusion

•   CakePHP2.0
     –   Autoload, LazyLoadの機能によりパフォーマ
         ンスアップ
     –   App::import()のPath再帰探索がなくなったの
         で注意
ロード 第2章へ・・・



  Thank you
 http://www.facebook.com/CakeRadioGaGa

Mais conteúdo relacionado

Mais procurados

Ruby on Rails3 Tutorial Chapter2
Ruby on Rails3 Tutorial Chapter2Ruby on Rails3 Tutorial Chapter2
Ruby on Rails3 Tutorial Chapter2
Sea Mountain
 
アップルのテンプレートは有害と考えられる
アップルのテンプレートは有害と考えられるアップルのテンプレートは有害と考えられる
アップルのテンプレートは有害と考えられる
Brian Gesiak
 
FuelPHPでSentry導入
FuelPHPでSentry導入FuelPHPでSentry導入
FuelPHPでSentry導入
fagai
 
Rails and twitter #twtr_hack
Rails and twitter #twtr_hackRails and twitter #twtr_hack
Rails and twitter #twtr_hack
i7a
 
CodeIgniterのページングに関して。
CodeIgniterのページングに関して。CodeIgniterのページングに関して。
CodeIgniterのページングに関して。
Takatsugu Ishikawa
 

Mais procurados (17)

Ruby on Rails3 Tutorial Chapter2
Ruby on Rails3 Tutorial Chapter2Ruby on Rails3 Tutorial Chapter2
Ruby on Rails3 Tutorial Chapter2
 
Laravelで 自家製ライブラリを 作ってみよう!
Laravelで自家製ライブラリを作ってみよう!Laravelで自家製ライブラリを作ってみよう!
Laravelで 自家製ライブラリを 作ってみよう!
 
fanscala1 3 sbt
fanscala1 3 sbtfanscala1 3 sbt
fanscala1 3 sbt
 
Laravel5を使って開発してみた
Laravel5を使って開発してみたLaravel5を使って開発してみた
Laravel5を使って開発してみた
 
アップルのテンプレートは有害と考えられる
アップルのテンプレートは有害と考えられるアップルのテンプレートは有害と考えられる
アップルのテンプレートは有害と考えられる
 
iOSビヘイビア駆動開発
iOSビヘイビア駆動開発iOSビヘイビア駆動開発
iOSビヘイビア駆動開発
 
OpenWhisk - Docker action で MeCab を動かす
OpenWhisk - Docker action で MeCab を動かすOpenWhisk - Docker action で MeCab を動かす
OpenWhisk - Docker action で MeCab を動かす
 
FuelPHPでSentry導入
FuelPHPでSentry導入FuelPHPでSentry導入
FuelPHPでSentry導入
 
Rails and twitter #twtr_hack
Rails and twitter #twtr_hackRails and twitter #twtr_hack
Rails and twitter #twtr_hack
 
Play framework 2.0のちょっとした紹介
Play framework 2.0のちょっとした紹介Play framework 2.0のちょっとした紹介
Play framework 2.0のちょっとした紹介
 
CodeIgniterのページングに関して。
CodeIgniterのページングに関して。CodeIgniterのページングに関して。
CodeIgniterのページングに関して。
 
19. camel tooling
19. camel tooling19. camel tooling
19. camel tooling
 
Web技術勉強会23回目
Web技術勉強会23回目Web技術勉強会23回目
Web技術勉強会23回目
 
#7 Controller
#7 Controller#7 Controller
#7 Controller
 
Rails3.1rc4を試してみた
Rails3.1rc4を試してみたRails3.1rc4を試してみた
Rails3.1rc4を試してみた
 
15. running deploying camel
15. running deploying camel15. running deploying camel
15. running deploying camel
 
オンプレを少しずつコンテナ化する
オンプレを少しずつコンテナ化するオンプレを少しずつコンテナ化する
オンプレを少しずつコンテナ化する
 

Semelhante a CakePHP2 Loading (Japanese)

Personal Cloud Automation
Personal Cloud AutomationPersonal Cloud Automation
Personal Cloud Automation
Etsuji Nakai
 
20091030cakephphandson 01
20091030cakephphandson 0120091030cakephphandson 01
20091030cakephphandson 01
Yusuke Ando
 
環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介
Etsuji Nakai
 
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniterWTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniter
Masanori Oobayashi
 
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
 10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1 10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
kenjis
 
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJSエンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJS
Ayumi Goto
 
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
Naoyuki Yamada
 
Cakephp tokyo5
Cakephp tokyo5Cakephp tokyo5
Cakephp tokyo5
ichikaway
 

Semelhante a CakePHP2 Loading (Japanese) (20)

appengine ja night #25 Google App Engine for PHP
appengine ja night #25 Google App Engine for PHPappengine ja night #25 Google App Engine for PHP
appengine ja night #25 Google App Engine for PHP
 
Personal Cloud Automation
Personal Cloud AutomationPersonal Cloud Automation
Personal Cloud Automation
 
20091030cakephphandson 01
20091030cakephphandson 0120091030cakephphandson 01
20091030cakephphandson 01
 
第2回 松本勉強会 2012 05 25 - apache2.4とmod_lua
第2回 松本勉強会 2012 05 25 - apache2.4とmod_lua第2回 松本勉強会 2012 05 25 - apache2.4とmod_lua
第2回 松本勉強会 2012 05 25 - apache2.4とmod_lua
 
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!
 
10分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/1210分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/12
 
APIMeetup 20170329_ichimura
APIMeetup 20170329_ichimuraAPIMeetup 20170329_ichimura
APIMeetup 20170329_ichimura
 
scala+liftで遊ぼう
scala+liftで遊ぼうscala+liftで遊ぼう
scala+liftで遊ぼう
 
microPCFを使ってみよう
microPCFを使ってみようmicroPCFを使ってみよう
microPCFを使ってみよう
 
環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介
 
macOS Cocoaを始める
macOS Cocoaを始めるmacOS Cocoaを始める
macOS Cocoaを始める
 
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniterWTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniter
 
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
 10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1 10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
 
HTML5&API総まくり
HTML5&API総まくりHTML5&API総まくり
HTML5&API総まくり
 
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJSエンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJS
 
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
 
Cakephp tokyo5
Cakephp tokyo5Cakephp tokyo5
Cakephp tokyo5
 
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
 
Apache Calcite の Apache Geode Adapter を弄った
Apache Calcite の Apache Geode Adapter を弄ったApache Calcite の Apache Geode Adapter を弄った
Apache Calcite の Apache Geode Adapter を弄った
 
qmake入門
qmake入門qmake入門
qmake入門
 

Mais de ichikaway

VAddy at LL Diver LT
VAddy at LL Diver LTVAddy at LL Diver LT
VAddy at LL Diver LT
ichikaway
 

Mais de ichikaway (20)

forteeに脆弱性検査をかけてみた VAddy編
forteeに脆弱性検査をかけてみた VAddy編forteeに脆弱性検査をかけてみた VAddy編
forteeに脆弱性検査をかけてみた VAddy編
 
Understanding Computer Architecture with NES Emulator
Understanding Computer Architecture with NES EmulatorUnderstanding Computer Architecture with NES Emulator
Understanding Computer Architecture with NES Emulator
 
VAddyの課金システムを Stripeに乗り換えた話
VAddyの課金システムを Stripeに乗り換えた話VAddyの課金システムを Stripeに乗り換えた話
VAddyの課金システムを Stripeに乗り換えた話
 
Hello, Worldまで3ヶ月 Golangでファミコンエミュレータ実装 #gocon fukuoka 2019
Hello, Worldまで3ヶ月 Golangでファミコンエミュレータ実装 #gocon fukuoka 2019Hello, Worldまで3ヶ月 Golangでファミコンエミュレータ実装 #gocon fukuoka 2019
Hello, Worldまで3ヶ月 Golangでファミコンエミュレータ実装 #gocon fukuoka 2019
 
ゼロから始めるファミコンエミュレータ生活 PHPerKaigi2019
ゼロから始めるファミコンエミュレータ生活 PHPerKaigi2019ゼロから始めるファミコンエミュレータ生活 PHPerKaigi2019
ゼロから始めるファミコンエミュレータ生活 PHPerKaigi2019
 
現場で使える脆弱性検査サービス VAddy
現場で使える脆弱性検査サービス VAddy 現場で使える脆弱性検査サービス VAddy
現場で使える脆弱性検査サービス VAddy
 
OS入門 Fukuoka.php vol.18 LT資料
OS入門 Fukuoka.php vol.18 LT資料OS入門 Fukuoka.php vol.18 LT資料
OS入門 Fukuoka.php vol.18 LT資料
 
Yapc8oji: セキュリティテストサービスを開発運営してきた2年
Yapc8oji: セキュリティテストサービスを開発運営してきた2年Yapc8oji: セキュリティテストサービスを開発運営してきた2年
Yapc8oji: セキュリティテストサービスを開発運営してきた2年
 
VAaddyとは VAddyミートアップvol3_20160629
VAaddyとは  VAddyミートアップvol3_20160629VAaddyとは  VAddyミートアップvol3_20160629
VAaddyとは VAddyミートアップvol3_20160629
 
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
脆弱性もバグ、だからテストしよう PHPカンファンレス2015脆弱性もバグ、だからテストしよう PHPカンファンレス2015
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
 
脆弱性もバグ、だからテストしよう DevSummiFukuoka
脆弱性もバグ、だからテストしよう DevSummiFukuoka脆弱性もバグ、だからテストしよう DevSummiFukuoka
脆弱性もバグ、だからテストしよう DevSummiFukuoka
 
Vulnerabilities are bugs, Let's test for them!
Vulnerabilities are bugs, Let's test for them!Vulnerabilities are bugs, Let's test for them!
Vulnerabilities are bugs, Let's test for them!
 
脆弱性もバグ、だからテストしよう!
脆弱性もバグ、だからテストしよう!脆弱性もバグ、だからテストしよう!
脆弱性もバグ、だからテストしよう!
 
継続的Webセキュリティテスト PHPカンファレンス関西2015 LT
継続的Webセキュリティテスト PHPカンファレンス関西2015 LT継続的Webセキュリティテスト PHPカンファレンス関西2015 LT
継続的Webセキュリティテスト PHPカンファレンス関西2015 LT
 
継続的Webセキュリティテスト testing casual talks2
継続的Webセキュリティテスト testing casual talks2継続的Webセキュリティテスト testing casual talks2
継続的Webセキュリティテスト testing casual talks2
 
Ctf2015 ichikawa Eizoku PM2.5 dial
Ctf2015 ichikawa Eizoku PM2.5 dialCtf2015 ichikawa Eizoku PM2.5 dial
Ctf2015 ichikawa Eizoku PM2.5 dial
 
VAddy - CI勉強会 fukuoka
VAddy - CI勉強会 fukuokaVAddy - CI勉強会 fukuoka
VAddy - CI勉強会 fukuoka
 
Jenkinsを使った継続的セキュリティテスト
Jenkinsを使った継続的セキュリティテストJenkinsを使った継続的セキュリティテスト
Jenkinsを使った継続的セキュリティテスト
 
継続的セキュリティテストVaddy説明資料
継続的セキュリティテストVaddy説明資料継続的セキュリティテストVaddy説明資料
継続的セキュリティテストVaddy説明資料
 
VAddy at LL Diver LT
VAddy at LL Diver LTVAddy at LL Diver LT
VAddy at LL Diver LT
 

Último

Último (11)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

CakePHP2 Loading (Japanese)

  • 1. ロード 第1章 Cakephp2 study 2011/6/25 Ichikaway
  • 4. LOADING • ファイル探索 • ファイルインポート(include, require) • インスタンス生成
  • 5. アジェンダ • App::build() • App::import() • AutoLoading • LazyLoading
  • 6. App::build() • app/bootstrap.phpに定義 • 標準以外の読み込みPATHを定義 – ex. 複数のプラグインフォルダを使いたい
  • 7. App::build() 1.3 App::build(array(  'controllers' => array(    '/home/user/app1/Controller',    '/home/user/app2/Controller',   ) )) 2.0 App::build(array(  'Controller' => array(    '/home/user/app1/Controller',    '/home/user/app2/Controller',   ) ))
  • 8. アジェンダ • App::build() • App::import() • AutoLoading • LazyLoading
  • 9. App::import() • ファイルの読み込み(include/require) – 例 App::import('Controller', 'UserGroup'); • ファイル探索 – 1.3 : ディレクトリ再帰探索 – 2.0 : 再帰探索しない • ファイルのインポート処理 – 1.3:すぐにinclude, require – 2.0:クラス利用時にinclude, require
  • 10. アジェンダ • App::build() • App::import() • AutoLoading • LazyLoading
  • 11. Autoload • __autoload() – 未定義のクラス/インターフェイスを使用し ようとした時に 自動的にコールされる – new Hoge()するまでrequireしない • インポート負荷の軽減 function __autoload($class_name) { include $class_name . '.php'; } $obj = new MyClass1(); $obj2 = new MyClass2();
  • 12. Autoload • App::uses('EmailComponent', 'Controller/Component') – クラス名と格納場所を登録するのみ • new EmailComponent()した時にautoloadの仕組みを 使ってincludeされる – App::load()がspl_autoload_register()から呼び出され る – cake/Cake/bootstrap.php • spl_autoload_register(array('App', 'load'));
  • 14. アジェンダ • App::build() • App::import() • AutoLoading • LazyLoading
  • 15. LazyLoading • AutoLoadingはinclude/requireのタイミング • LazyLoadingはインスタンス生成のタイミング
  • 16. LazyLoading • CakePHP1.3 – アクションで利用しないモデルオブジェクトまで生成 class PostsController extends AppController { public $uses = array('Post','Event'); function index() { $this->Post->recursive = 0; $this->set('posts', $this- >paginate()); }
  • 17. LazyLoading • CakePHP1.3 – cake/dispatcher.php – controller::constructClasses() – controller::loadModel() – ClassRegistry::init() • new Model()
  • 18. LazyLoading • CakePHP2.0 – Controller::usesで定義してもモデルオブジェク トは生成されない – コントローラのプロパティ変数($this->Model) にアクセスした時に初めてオブジェクト生成 • 不要なオブジェクト生成を回避 • マジックメソッドを利用
  • 19. LazyLoading • CakePHP2.0 – $this->Post->find(); //controller – Controller::__get() でisset() – Controller::__isset() – Controller::loadModel() – ClassRegistry::init() • new Model()
  • 20. Conclusion • CakePHP2.0 – Autoload, LazyLoadの機能によりパフォーマ ンスアップ – App::import()のPath再帰探索がなくなったの で注意
  • 21. ロード 第2章へ・・・ Thank you http://www.facebook.com/CakeRadioGaGa