From c558d5b175d8fc6796f8aaba60d07390638a9af7 Mon Sep 17 00:00:00 2001 From: Sean Fraser Date: Fri, 30 Sep 2016 11:22:52 -0400 Subject: [PATCH 1/7] fixed case where variable is undefined --- src/SourceAdapters/SourceAdapterFactory.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/SourceAdapters/SourceAdapterFactory.php b/src/SourceAdapters/SourceAdapterFactory.php index c8db2af..666b253 100644 --- a/src/SourceAdapters/SourceAdapterFactory.php +++ b/src/SourceAdapters/SourceAdapterFactory.php @@ -33,6 +33,8 @@ class SourceAdapterFactory */ public function create($source) { + $adapter = null; + if ($source instanceof SourceAdapterInterface) { return $source; } elseif (is_object($source)) { From ce41effc27e62904e265f34587dad2bf57bbf520 Mon Sep 17 00:00:00 2001 From: Sean Fraser Date: Fri, 30 Sep 2016 11:23:58 -0400 Subject: [PATCH 2/7] added handling for symlinked local storage disks --- docs/build/doctrees/commands.doctree | Bin 4336 -> 4332 bytes docs/build/doctrees/configuration.doctree | Bin 19563 -> 27641 bytes docs/build/doctrees/environment.pickle | Bin 19567 -> 19924 bytes docs/build/doctrees/index.doctree | Bin 9830 -> 9831 bytes docs/build/doctrees/installation.doctree | Bin 5701 -> 5702 bytes docs/build/doctrees/media.doctree | Bin 13275 -> 13276 bytes docs/build/doctrees/mediable.doctree | Bin 45516 -> 45459 bytes docs/build/doctrees/types.doctree | Bin 5244 -> 5240 bytes docs/build/doctrees/uploader.doctree | Bin 21201 -> 21197 bytes docs/build/html/.buildinfo | 2 +- docs/build/html/_sources/configuration.txt | 86 ++++- docs/build/html/_sources/mediable.txt | 2 +- docs/build/html/commands.html | 8 +- docs/build/html/configuration.html | 327 +++++++++++------- docs/build/html/genindex.html | 8 +- docs/build/html/index.html | 8 +- docs/build/html/installation.html | 8 +- docs/build/html/media.html | 8 +- docs/build/html/mediable.html | 10 +- docs/build/html/objects.inv | 2 +- docs/build/html/search.html | 8 +- docs/build/html/searchindex.js | 2 +- docs/build/html/types.html | 8 +- docs/build/html/uploader.html | 8 +- docs/source/conf.py | 4 +- docs/source/configuration.rst | 86 ++++- docs/source/mediable.rst | 2 +- src/UrlGenerators/BaseUrlGenerator.php | 8 + src/UrlGenerators/LocalUrlGenerator.php | 13 +- src/UrlGenerators/S3UrlGenerator.php | 10 - src/UrlGenerators/UrlGeneratorInterface.php | 2 + tests/TestCase.php | 10 +- .../UrlGenerators/LocalUrlGeneratorTest.php | 7 + 33 files changed, 451 insertions(+), 186 deletions(-) diff --git a/docs/build/doctrees/commands.doctree b/docs/build/doctrees/commands.doctree index 073603eff493cfa9725028875b17c95aaa8e3cb2..f90228f4c005096fc530786ecf6d5a16bee7500a 100644 GIT binary patch delta 28 jcmeyM_(pMqAtS#v0|SG8XmM&$v3_xCV%}yK#x?u^g}4b7 delta 32 ncmaE(_(5@lA)~N80|SG8XmM&$v3^=nVsUO_dg^8e#x?u^upJ7x diff --git a/docs/build/doctrees/configuration.doctree b/docs/build/doctrees/configuration.doctree index fd5e76f60bf44c5a3ec3d8b7f75916a7d8fa3704..d19b551a695356cd1efb8461849538dd209f4626 100644 GIT binary patch literal 27641 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 R36VYYan9akRjYmJ{|87E?n3|o literal 19563 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 GHUA$+PPFd; literal 19567 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 N1Xj8jNR}q)0RZ~WJ5~Sy delta 185 zcmaFv^UP<%Vn$&b1_lQG(BjmhV*RwD#Nyn<^wiCp7}qO1hl-_T=A_1F<^knOGV}A| zQ}Ys&a#B-@rZF-wbcAvjC6>d5rUQk%8AEwfN^=Y1i&INVGV{`li)Kt-sVXNt6C}qF z%AA=}Tr>;Ft}U89`If4I@EkCEE|APn$k549sx6u~SyoL;VLnhKwrBy63}q`yO#^9L N2v)iXNR}q)0RTo^JK+ET diff --git a/docs/build/doctrees/installation.doctree b/docs/build/doctrees/installation.doctree index 548b901033936d9f8c164fca8150847f25c21116..70d09aa6eed1d6f3ac1cbc09db4dffcca161d51b 100644 GIT binary patch delta 186 zcmX@Ab4+K0CL_N+0|SG8XmM&$v3_xCV%}yOMrjd`B1T3AhETDz%$(Ht%silENoIat zd}>}|Qch}05ff0dBb2)+u^cYM3>5Na4CPHJ%`J#8PAw_P%u6pWVwpTkR8E)`B*zfS zoS9Nw#0F&77O_u0Eh;O_0cLXo$qcCswG5fsBCg55MYR;Tfg-U*JU}v(ttd4Oq>UG> Lln+RjCg}kHjA}89 delta 185 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 WTs?`gv;&s|R``^tK8>-lGWY)#n4^6F delta 13565 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 PJA!#ZRA0ncUs3RXU^P)+ diff --git a/docs/build/doctrees/types.doctree b/docs/build/doctrees/types.doctree index 2d97dedbbd6ad61b5febeccde88a18178f5439a3..4e2b0cf5eae8fc5646ea0bcff18de089ab574311 100644 GIT binary patch delta 28 jcmeyP@k3*SJ|n*c0|SG8XmM&$v3_xCV%}yaMk`?eh*}87 delta 32 ncmeyN@ke8WKBKS=0|SG8XmM&$v3^=nVsUO_dg^97Mk`?evqK7L diff --git a/docs/build/doctrees/uploader.doctree b/docs/build/doctrees/uploader.doctree index a8a357ebe46e6577f816e84909cd22088ec92b01..19dcbc65944acc972f67dae81aa141312890a939 100644 GIT binary patch delta 30 mcmcb(l=19R#tkzW`K=ik81zGnQ;UlAi&GQxHm_k+4FmwFzY1&s delta 34 qcmX@Rl=0$H#tkzWh3y#_81zGnQ;UlA(~1&{a}(23H?Lq+4Fmw!@C*+C diff --git a/docs/build/html/.buildinfo b/docs/build/html/.buildinfo index 717ba21..49bb039 100644 --- a/docs/build/html/.buildinfo +++ b/docs/build/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 2722b2b5df7612bff4385ecba0d7e59f +config: bbf7cac85fbbf9441e0e7eba39880a50 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/build/html/_sources/configuration.txt b/docs/build/html/_sources/configuration.txt index ab60e27..25fed20 100644 --- a/docs/build/html/_sources/configuration.txt +++ b/docs/build/html/_sources/configuration.txt @@ -14,6 +14,7 @@ An example setup with one private disk (``local``) and one publicly accessible d :: + [ 'local' => [ @@ -33,6 +34,7 @@ Once you have set up as many disks as you need, edit ``config/mediable.php`` to :: + [ + 'uploads' => [ + 'driver' => 'local', + 'root' => public_path('uploads'), + ], + ] + + //... + + $media->getUrl(); // returns http://domain.com/uploads/foo.jpg + +``Media`` placed on a disk located elsewhere will throw an exception. + +:: + + [ + 'private' => [ + 'driver' => 'local', + 'root' => storage_path('private'), + ], + ] + + //... + + $media->getUrl(); // Throws a Plank\Mediable\Exceptions\MediableUrlException + +If you are using symbolic links to make local disks accessible, you can instruct the package to generate URLs with the ``'visibility' => 'public'`` key. By default, the package will assume that the symlink is named ``'storage'``, as per `laravel's documentation `_. This can be modified with the ``'prefix'`` key. + +:: + + [ + 'public' => [ + 'driver' => 'local', + 'root' => storage_path('public'), + 'visibility' => 'public', + 'prefix' => 'assets' + ], + ] + + //... + + $media->getUrl(); // returns http://domain.com/assets/foo.jpg + + +Permissions for S3-based disks is set on the buckets themselves. You can inform the package that ``Media`` on an S3 disk can be linked by URL by adding the ``'visibility' => 'public'`` key to the disk congfig. + +:: + + [ + 'cloud' => [ + 'driver' => 's3', + 'key' => env('S3_KEY'), + 'secret' => env('S3_SECRET'), + 'region' => env('S3_REGION'), + 'bucket' => env('S3_BUCKET'), + 'version' => 'latest', + 'visibility' => 'public' + ], + ] + + //... + + $media->getUrl(); // returns https://s3.amazonaws.com/bucket/foo.jpg + + .. _validation: Validation @@ -56,6 +137,7 @@ The `config/mediable.php` offers a number of options for configuring how media u :: + [ //... @@ -145,6 +228,7 @@ The ``config/mediable.php`` file lets you specify a number of classes to be use :: + getMedia('thumbnail'); -This returns a collection of all media assigned to that tag. In cases where you only need one `Media` entity, you can instead use `firstMedia()`. +This returns a collection of all media assigned to that tag. In cases where you only need one ``Media`` entity, you can instead use ``firstMedia()``. :: diff --git a/docs/build/html/commands.html b/docs/build/html/commands.html index 124da73..046dc5b 100644 --- a/docs/build/html/commands.html +++ b/docs/build/html/commands.html @@ -8,7 +8,7 @@ - Artisan Commands — Laravel-Mediable 2.0.0 documentation + Artisan Commands — Laravel-Mediable 2.2.0 documentation @@ -30,7 +30,7 @@ - + @@ -59,7 +59,7 @@
- 2.0.0 + 2.2.0
@@ -192,7 +192,7 @@

Artisan Commands var DOCUMENTATION_OPTIONS = { URL_ROOT:'./', - VERSION:'2.0.0', + VERSION:'2.2.0', COLLAPSE_INDEX:false, FILE_SUFFIX:'.html', HAS_SOURCE: true diff --git a/docs/build/html/configuration.html b/docs/build/html/configuration.html index ab6d61b..3045652 100644 --- a/docs/build/html/configuration.html +++ b/docs/build/html/configuration.html @@ -8,7 +8,7 @@ - Configuration — Laravel-Mediable 2.0.0 documentation + Configuration — Laravel-Mediable 2.2.0 documentation @@ -30,7 +30,7 @@ - + @@ -60,7 +60,7 @@
- 2.0.0 + 2.2.0
@@ -85,7 +85,10 @@