Version Description
(2021-02-11) =
Changed - Now detecting a conflict with the official "Facebook for WordPress" plugin
Fixed - Fixed "Argument 1 passed" error when viewing/previewing a feed
Download this release
Release Info
Developer | Mekku |
Plugin | Spotlight Social Media Feeds |
Version | 0.5.4 |
Comparing to | |
See all releases |
Code changes from version 0.5.3 to 0.5.4
- core/Engine/Stores/WpPostMediaStore.php +8 -2
- core/PostTypes/MediaPostType.php +1 -1
- core/RestApi/EndPoints/Feeds/GetSourcesEndpoint.php +2 -2
- core/RestApi/EndPoints/Tools/ClearCacheFeedEndpoint.php +5 -5
- includes/init.php +32 -3
- plugin.json +1 -1
- plugin.php +2 -2
- readme.txt +124 -109
- vendor/autoload.php +1 -1
- vendor/composer/ClassLoader.php +32 -0
- vendor/composer/InstalledVersions.php +92 -27
- vendor/composer/autoload_real.php +8 -8
- vendor/composer/autoload_static.php +4 -4
- vendor/composer/installed.php +2 -2
- vendor/container-interop/service-provider/.gitignore +0 -2
- vendor/dhii/stringable-interface/.gitignore +0 -4
- vendor/dhii/stringable-interface/.php_cs +0 -23
- vendor/dhii/stringable-interface/.travis.yml +0 -18
- vendor/dhii/stringable-interface/phpunit.xml +0 -35
- vendor/guzzlehttp/guzzle/.php_cs +0 -23
- vendor/guzzlehttp/promises/.php_cs.dist +0 -88
- vendor/guzzlehttp/promises/phpstan.neon.dist +0 -10
- vendor/guzzlehttp/promises/psalm.xml +0 -15
- vendor/kevinrob/guzzle-cache-middleware/.editorconfig +0 -11
- vendor/kevinrob/guzzle-cache-middleware/.gitignore +0 -6
- vendor/kevinrob/guzzle-cache-middleware/.travis.yml +0 -27
- vendor/kevinrob/guzzle-cache-middleware/phpunit.xml.dist +0 -31
- vendor/psr/container/.gitignore +0 -3
- vendor/psr/simple-cache/.editorconfig +0 -12
- vendor/rebelcode/entities/.gitattributes +0 -0
- vendor/rebelcode/entities/.gitignore +0 -4
- vendor/rebelcode/entities/phpunit.xml +0 -35
core/Engine/Stores/WpPostMediaStore.php
CHANGED
@@ -280,6 +280,7 @@ class WpPostMediaStore implements ItemStore
|
|
280 |
public static function wpPostToItem(WP_Post $post, Source $source) : Item
|
281 |
{
|
282 |
$children = $post->{MediaPostType::CHILDREN};
|
|
|
283 |
$children = Arrays::map($children, function ($child) {
|
284 |
return ($child instanceof IgMedia)
|
285 |
? [
|
@@ -291,12 +292,17 @@ class WpPostMediaStore implements ItemStore
|
|
291 |
: (array) $child;
|
292 |
});
|
293 |
|
294 |
-
$thumbnails =
|
|
|
|
|
295 |
return is_ssl()
|
296 |
? preg_replace('#^http://#', 'https://', $url, 1)
|
297 |
: $url;
|
298 |
});
|
299 |
|
|
|
|
|
|
|
300 |
$likesCount = intval($post->{MediaPostType::LIKES_COUNT});
|
301 |
$commentsCount = intval($post->{MediaPostType::COMMENTS_COUNT});
|
302 |
$size = is_array($post->{MediaPostType::SIZE})
|
@@ -316,7 +322,7 @@ class WpPostMediaStore implements ItemStore
|
|
316 |
MediaItem::THUMBNAILS => $thumbnails,
|
317 |
MediaItem::LIKES_COUNT => $likesCount,
|
318 |
MediaItem::COMMENTS_COUNT => $commentsCount,
|
319 |
-
MediaItem::COMMENTS => $
|
320 |
MediaItem::CHILDREN => $children,
|
321 |
MediaItem::IS_STORY => boolval($post->{MediaPostType::IS_STORY}),
|
322 |
MediaItem::LAST_REQUESTED => $post->{MediaPostType::LAST_REQUESTED},
|
280 |
public static function wpPostToItem(WP_Post $post, Source $source) : Item
|
281 |
{
|
282 |
$children = $post->{MediaPostType::CHILDREN};
|
283 |
+
$children = is_array($children) ? $children : [];
|
284 |
$children = Arrays::map($children, function ($child) {
|
285 |
return ($child instanceof IgMedia)
|
286 |
? [
|
292 |
: (array) $child;
|
293 |
});
|
294 |
|
295 |
+
$thumbnails = $post->{MediaPostType::THUMBNAILS};
|
296 |
+
$thumbnails = is_array($thumbnails) ? $thumbnails : [];
|
297 |
+
$thumbnails = Arrays::map($thumbnails, function ($url) {
|
298 |
return is_ssl()
|
299 |
? preg_replace('#^http://#', 'https://', $url, 1)
|
300 |
: $url;
|
301 |
});
|
302 |
|
303 |
+
$comments = $post->{MediaPostType::COMMENTS};
|
304 |
+
$comments = is_array($comments) ? $comments : [];
|
305 |
+
|
306 |
$likesCount = intval($post->{MediaPostType::LIKES_COUNT});
|
307 |
$commentsCount = intval($post->{MediaPostType::COMMENTS_COUNT});
|
308 |
$size = is_array($post->{MediaPostType::SIZE})
|
322 |
MediaItem::THUMBNAILS => $thumbnails,
|
323 |
MediaItem::LIKES_COUNT => $likesCount,
|
324 |
MediaItem::COMMENTS_COUNT => $commentsCount,
|
325 |
+
MediaItem::COMMENTS => $comments,
|
326 |
MediaItem::CHILDREN => $children,
|
327 |
MediaItem::IS_STORY => boolval($post->{MediaPostType::IS_STORY}),
|
328 |
MediaItem::LAST_REQUESTED => $post->{MediaPostType::LAST_REQUESTED},
|
core/PostTypes/MediaPostType.php
CHANGED
@@ -221,7 +221,7 @@ class MediaPostType extends PostType
|
|
221 |
/**
|
222 |
* Retrieves all used the sources from across all the media in the database.
|
223 |
*
|
224 |
-
* @since
|
225 |
*
|
226 |
* @return Source[] An array of sources.
|
227 |
*/
|
221 |
/**
|
222 |
* Retrieves all used the sources from across all the media in the database.
|
223 |
*
|
224 |
+
* @since 0.5.3
|
225 |
*
|
226 |
* @return Source[] An array of sources.
|
227 |
*/
|
core/RestApi/EndPoints/Feeds/GetSourcesEndpoint.php
CHANGED
@@ -12,14 +12,14 @@ use WP_REST_Response;
|
|
12 |
/**
|
13 |
* Handler for the endpoint that provides the sources used across all feeds.
|
14 |
*
|
15 |
-
* @since
|
16 |
*/
|
17 |
class GetSourcesEndpoint extends AbstractEndpointHandler
|
18 |
{
|
19 |
/**
|
20 |
* @inheritDoc
|
21 |
*
|
22 |
-
* @since
|
23 |
*/
|
24 |
protected function handle(WP_REST_Request $request)
|
25 |
{
|
12 |
/**
|
13 |
* Handler for the endpoint that provides the sources used across all feeds.
|
14 |
*
|
15 |
+
* @since 0.5.3
|
16 |
*/
|
17 |
class GetSourcesEndpoint extends AbstractEndpointHandler
|
18 |
{
|
19 |
/**
|
20 |
* @inheritDoc
|
21 |
*
|
22 |
+
* @since 0.5.3
|
23 |
*/
|
24 |
protected function handle(WP_REST_Request $request)
|
25 |
{
|
core/RestApi/EndPoints/Tools/ClearCacheFeedEndpoint.php
CHANGED
@@ -12,19 +12,19 @@ use WP_REST_Response;
|
|
12 |
/**
|
13 |
* Handler for the REST API endpoint that clears the cache for a specific feed.
|
14 |
*
|
15 |
-
*
|
16 |
*/
|
17 |
class ClearCacheFeedEndpoint extends AbstractEndpointHandler
|
18 |
{
|
19 |
/**
|
20 |
-
*
|
21 |
*
|
22 |
* @var Engine
|
23 |
*/
|
24 |
protected $engine;
|
25 |
|
26 |
/**
|
27 |
-
*
|
28 |
*
|
29 |
* @var FeedManager
|
30 |
*/
|
@@ -33,7 +33,7 @@ class ClearCacheFeedEndpoint extends AbstractEndpointHandler
|
|
33 |
/**
|
34 |
* Constructor.
|
35 |
*
|
36 |
-
*
|
37 |
*
|
38 |
* @param Engine $engine
|
39 |
* @param FeedManager $feedManager
|
@@ -47,7 +47,7 @@ class ClearCacheFeedEndpoint extends AbstractEndpointHandler
|
|
47 |
/**
|
48 |
* @inheritDoc
|
49 |
*
|
50 |
-
*
|
51 |
*/
|
52 |
protected function handle(WP_REST_Request $request)
|
53 |
{
|
12 |
/**
|
13 |
* Handler for the REST API endpoint that clears the cache for a specific feed.
|
14 |
*
|
15 |
+
* 0.5.3
|
16 |
*/
|
17 |
class ClearCacheFeedEndpoint extends AbstractEndpointHandler
|
18 |
{
|
19 |
/**
|
20 |
+
* 0.5.3
|
21 |
*
|
22 |
* @var Engine
|
23 |
*/
|
24 |
protected $engine;
|
25 |
|
26 |
/**
|
27 |
+
* 0.5.3
|
28 |
*
|
29 |
* @var FeedManager
|
30 |
*/
|
33 |
/**
|
34 |
* Constructor.
|
35 |
*
|
36 |
+
* 0.5.3
|
37 |
*
|
38 |
* @param Engine $engine
|
39 |
* @param FeedManager $feedManager
|
47 |
/**
|
48 |
* @inheritDoc
|
49 |
*
|
50 |
+
* 0.5.3
|
51 |
*/
|
52 |
protected function handle(WP_REST_Request $request)
|
53 |
{
|
includes/init.php
CHANGED
@@ -523,7 +523,19 @@ if (!function_exists('slInstaCheckForConflicts')) {
|
|
523 |
$conflicts = [];
|
524 |
foreach (slInstaGetConflictingPlugins() as $plugin => $info) {
|
525 |
if (is_plugin_active($plugin) && $plugin !== $ignore) {
|
526 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
527 |
}
|
528 |
}
|
529 |
|
@@ -551,6 +563,7 @@ if (!function_exists('slInstaShowConflictsNotice')) {
|
|
551 |
}
|
552 |
|
553 |
add_action('admin_notices', function () use ($conflicts) {
|
|
|
554 |
?>
|
555 |
<div class="notice notice-error">
|
556 |
<p>
|
@@ -566,11 +579,19 @@ if (!function_exists('slInstaShowConflictsNotice')) {
|
|
566 |
?>
|
567 |
</p>
|
568 |
<ol>
|
569 |
-
<?php foreach ($conflicts as $plugin
|
|
|
570 |
<li><b><?= $info['name'] ?></b> — <i><?= $info['reason'] ?></i></li>
|
571 |
<?php endforeach; ?>
|
572 |
</ol>
|
573 |
-
<p
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
574 |
<p>
|
575 |
<a class="button button-secondary" href="<?= add_query_arg(['sli_ignore_conflicts' => '1']) ?>">
|
576 |
<?= __('Ignore conflicts', 'sl-insta') ?>
|
@@ -595,6 +616,14 @@ if (!function_exists('slInstaGetConflictingPlugins')) {
|
|
595 |
'sl-insta'
|
596 |
),
|
597 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
598 |
];
|
599 |
}
|
600 |
}
|
523 |
$conflicts = [];
|
524 |
foreach (slInstaGetConflictingPlugins() as $plugin => $info) {
|
525 |
if (is_plugin_active($plugin) && $plugin !== $ignore) {
|
526 |
+
// If conflict has a version constraint ...
|
527 |
+
if (array_key_exists('version', $info)) {
|
528 |
+
$data = get_plugin_data(WP_CONTENT_DIR . '/plugins/' . $plugin);
|
529 |
+
$version1 = $data['Version'];
|
530 |
+
[$compare, $version2] = $info['version'];
|
531 |
+
|
532 |
+
// And version constraint is not satisfied, skip conflict
|
533 |
+
if (!version_compare($version1, $version2, $compare)) {
|
534 |
+
continue;
|
535 |
+
}
|
536 |
+
}
|
537 |
+
|
538 |
+
$conflicts[] = $plugin;
|
539 |
}
|
540 |
}
|
541 |
|
563 |
}
|
564 |
|
565 |
add_action('admin_notices', function () use ($conflicts) {
|
566 |
+
$conflictConfig = slInstaGetConflictingPlugins();
|
567 |
?>
|
568 |
<div class="notice notice-error">
|
569 |
<p>
|
579 |
?>
|
580 |
</p>
|
581 |
<ol>
|
582 |
+
<?php foreach ($conflicts as $plugin) : ?>
|
583 |
+
<?php $info = $conflictConfig[$plugin] ?>
|
584 |
<li><b><?= $info['name'] ?></b> — <i><?= $info['reason'] ?></i></li>
|
585 |
<?php endforeach; ?>
|
586 |
</ol>
|
587 |
+
<p>
|
588 |
+
<?=
|
589 |
+
__(
|
590 |
+
'You can choose to ignore these conflicts, but do so only if you know what you\'re doing.',
|
591 |
+
'sl-insta'
|
592 |
+
)
|
593 |
+
?>
|
594 |
+
</p>
|
595 |
<p>
|
596 |
<a class="button button-secondary" href="<?= add_query_arg(['sli_ignore_conflicts' => '1']) ?>">
|
597 |
<?= __('Ignore conflicts', 'sl-insta') ?>
|
616 |
'sl-insta'
|
617 |
),
|
618 |
],
|
619 |
+
'official-facebook-pixel/facebook-for-wordpress.php' => [
|
620 |
+
'name' => 'Facebook for WordPress',
|
621 |
+
'reason' => __(
|
622 |
+
'Both plugins use the Guzzle HTTP library but at different versions, causing a fatal error. Update the plugin to version 3.0.2 or later to resolve the conflict.',
|
623 |
+
'sl-insta'
|
624 |
+
),
|
625 |
+
'version' => ['<', '3.0.2'],
|
626 |
+
],
|
627 |
];
|
628 |
}
|
629 |
}
|
plugin.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
{
|
2 |
"name": "Spotlight - Social Media Feeds",
|
3 |
"description": "Easily embed beautiful Instagram feeds on your WordPress site.",
|
4 |
-
"version": "0.5.
|
5 |
"url": "https://spotlightwp.com",
|
6 |
"author": "RebelCode",
|
7 |
"authorUrl": "https://rebelcode.com",
|
1 |
{
|
2 |
"name": "Spotlight - Social Media Feeds",
|
3 |
"description": "Easily embed beautiful Instagram feeds on your WordPress site.",
|
4 |
+
"version": "0.5.4",
|
5 |
"url": "https://spotlightwp.com",
|
6 |
"author": "RebelCode",
|
7 |
"authorUrl": "https://rebelcode.com",
|
plugin.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
*
|
6 |
* Plugin Name: Spotlight - Social Media Feeds
|
7 |
* Description: Easily embed beautiful Instagram feeds on your WordPress site.
|
8 |
-
* Version: 0.5.
|
9 |
* Author: RebelCode
|
10 |
* Plugin URI: https://spotlightwp.com
|
11 |
* Author URI: https://rebelcode.com
|
@@ -57,7 +57,7 @@ slInstaRunPlugin(__FILE__, function (SlInstaRuntime $sli) {
|
|
57 |
// The plugin name
|
58 |
define('SL_INSTA_NAME', 'Spotlight - Social Media Feeds');
|
59 |
// The plugin version
|
60 |
-
define('SL_INSTA_VERSION', '0.5.
|
61 |
// The path to the plugin's main file
|
62 |
define('SL_INSTA_FILE', __FILE__);
|
63 |
// The dir to the plugin's directory
|
5 |
*
|
6 |
* Plugin Name: Spotlight - Social Media Feeds
|
7 |
* Description: Easily embed beautiful Instagram feeds on your WordPress site.
|
8 |
+
* Version: 0.5.4
|
9 |
* Author: RebelCode
|
10 |
* Plugin URI: https://spotlightwp.com
|
11 |
* Author URI: https://rebelcode.com
|
57 |
// The plugin name
|
58 |
define('SL_INSTA_NAME', 'Spotlight - Social Media Feeds');
|
59 |
// The plugin version
|
60 |
+
define('SL_INSTA_VERSION', '0.5.4');
|
61 |
// The path to the plugin's main file
|
62 |
define('SL_INSTA_FILE', __FILE__);
|
63 |
// The dir to the plugin's directory
|
readme.txt
CHANGED
@@ -2,145 +2,142 @@
|
|
2 |
|
3 |
Contributors: RebelCode, spotlightsocialfeeds, markzahra, Mekku, jeangalea
|
4 |
Plugin URI: https://spotlightwp.com
|
5 |
-
Tags: Instagram, Instagram feed, Instagram feeds, Instagram widget, social media, social media feed, social media feeds, Instagram posts, Instagram gallery, Instagram stories, hashtag
|
6 |
Requires at least: 5.0
|
7 |
Requires PHP: 7.1
|
8 |
Tested up to: 5.6
|
9 |
-
Stable tag: 0.5.
|
10 |
License: GPLv3
|
11 |
|
12 |
== Description ==
|
13 |
|
14 |
-
|
15 |
|
16 |
-
[
|
17 |
|
18 |
-
==
|
19 |
|
20 |
-
|
21 |
|
22 |
-
1. Connect
|
23 |
-
2. Design your Instagram feed's look
|
24 |
-
3.
|
25 |
|
26 |
-
No coding or complex shortcodes required.
|
27 |
|
28 |
-
|
29 |
|
30 |
-
==
|
31 |
|
32 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
|
34 |
-
https://
|
35 |
-
|
36 |
-
> "If you're ready to **start nailing the BIG 3 C's of having a website**, that is building credibility, staying current, and having a better connection with your website visitors, check out Spotlight Instagram feeds today." - Adam, WP Crafter
|
37 |
-
|
38 |
-
== Free features ==
|
39 |
-
|
40 |
-
- Connect multiple Instagram accounts
|
41 |
-
- Connect client's Instagram accounts*
|
42 |
-
- Unlimited Instagram feeds
|
43 |
-
- Interactive live preview
|
44 |
-
- Point and click customiser
|
45 |
-
- Instagram grid layout
|
46 |
-
- Set number of posts and columns per device
|
47 |
-
- Order by date, popularity, or at random
|
48 |
-
- Popup lightbox to show full-size photos and playable videos
|
49 |
-
- Feed header showing your avatar, Instagram bio, and counts
|
50 |
-
- Add a custom bio text and profile photo per account or feed
|
51 |
-
- “Follow” button
|
52 |
-
- “Load More” button
|
53 |
-
- Fully responsive
|
54 |
-
- Embed using our Instagram block, Instagram widget, or shortcode
|
55 |
-
|
56 |
-
*Spotlight provides its own [Access Token Generator](https://spotlightwp.com/access-token-generator/) so your clients won't need to share their personal login details.
|
57 |
-
|
58 |
-
== Easily create custom Instagram feeds ==
|
59 |
-
The live preview customizer includes a lot of design options that are point-and-click, no coding knowledge required. If you're a bit more adventurous, Spotlight's CSS is set up to be easily customizable for developers. Let your imagination run free.
|
60 |
-
|
61 |
-
> Out of all of the Instagram integration plugins out there, this is one that I would by far recommend the most. The plugin itself is easy to use for anyone – especially a beginner. Their free option is also fairly comprehensive on it’s own! - Tim
|
62 |
-
|
63 |
-
== Connect with your audience ==
|
64 |
-
Boost your brand, drive conversions, and gain new followers by embedding your Instagram feed directly on your website. From baby boomers to millennials and Gen Z, Instagram gets people from all walks of life to engage with each other. Something as simple as adding a **Follow button** to an Instagram feed can have an instant impact.
|
65 |
|
66 |
-
|
67 |
|
68 |
-
|
69 |
-
|
70 |
|
71 |
-
|
|
|
72 |
|
73 |
-
|
|
|
74 |
|
75 |
-
|
76 |
-
|
77 |
|
78 |
-
==
|
79 |
-
Designs for "Coming Soon" and "Maintenance" pages have become all too similar. Make yours stand out by embedding an Instagram feed and turn those site visitors into Instagram followers with Spotlight's "Follow" button. Don't let new leads get away so easily - make sure you can reach them on social media once your website has launched.
|
80 |
|
81 |
-
|
82 |
-
|
83 |
|
84 |
-
|
|
|
85 |
|
86 |
-
|
87 |
-
Spotlight
|
88 |
-
|
89 |
-
Create and embed one or more feeds on a single page or use them across different sections of your website. Use the [Instagram block](https://docs.spotlightwp.com/article/581-block), [shortcode](https://docs.spotlightwp.com/article/579-shortcode) or [Instagram widget](https://docs.spotlightwp.com/article/580-widget) provided by Spotlight to add your Instagram feed anywhere across your theme.
|
90 |
-
|
91 |
-
== Reliable and experienced customer support ==
|
92 |
-
Aside from [Spotlight's helpful documentation](https://docs.spotlightwp.com/), you have the full backing of our experienced team of developers and support specialists. We provide support for both free and PRO users.
|
93 |
-
|
94 |
-
Through [WP Mayor](https://wpmayor.com/), a trusted and long-standing WordPress resource site; and [WP RSS Aggregator](https://www.wprssaggregator.com/), the original and most popular RSS feed importer for WordPress, we have helped thousands of people over the years and continue to do so today.
|
95 |
|
96 |
- [Documentation](https://docs.spotlightwp.com/)
|
97 |
- [Free support (forum)](https://wordpress.org/support/plugin/spotlight-social-photo-feeds/)
|
98 |
- [Premium support (email)](https://spotlightwp.com/support/?utm_source=readme&utm_medium=readme_desc&utm_campaign=readme_desc_support)
|
99 |
|
100 |
-
|
101 |
-
|
102 |
-
== Upgrade: Spotlight Instagram Feeds PRO ==
|
103 |
|
104 |
-
Level up your Instagram feeds with **[Spotlight PRO](https://spotlightwp.com/pricing/?utm_source=readme&utm_medium=readme_desc&utm_campaign=readme_desc_upgrade)
|
105 |
|
106 |
-
|
107 |
|
108 |
-
PRO features:
|
109 |
|
110 |
- Hashtag feeds - most popular/recent from across Instagram
|
111 |
- Tagged post feeds - show where your account is tagged
|
112 |
- Caption filtering
|
113 |
- Hashtag filtering
|
114 |
- Visual moderation (hand-pick which posts to show/hide)
|
115 |
-
- Promote: link
|
116 |
-
- Promote:
|
|
|
117 |
- Highlight layout
|
118 |
- Masonry layout
|
119 |
-
- Slider layout
|
120 |
- Hover styles
|
121 |
- Header styles
|
122 |
-
- Show captions
|
123 |
- Embed Instagram stories in the profile photo (just like Instagram)
|
124 |
-
- Elementor Instagram widget - ([Recommended by Elementor.com](https://elementor.com/features/integrations/))
|
125 |
|
126 |
-
**
|
|
|
|
|
|
|
|
|
|
|
|
|
127 |
|
128 |
-
|
129 |
-
Hubspot: [Top 3 Free Instagram Plugins for WordPress](https://blog.hubspot.com/website/top-free-instagram-plugins-wordpress-site)
|
130 |
-
Elementor: [Best Instagram Plugins for WordPress](https://elementor.com/blog/best-instagram-plugins-wordpress/)
|
131 |
-
WP Mayor: [How to Import Instagram Photos to WordPress](https://wpmayor.com/import-instagram-photos-wordpress/)
|
132 |
-
Kinsta: [WordPress Instagram Plugins for Displaying Interactive Feeds](https://kinsta.com/blog/wordpress-instagram-plugin/)
|
133 |
-
BobWP: [How to Improve WooCommerce Sales Using Your Instagram Feed](https://bobwp.com/how-to-improve-woocommerce-sales-using-your-instagram-feed/)
|
134 |
-
Theme Fusion: [How to Use Instagram Feeds to Boost Traffic and Conversions](https://theme-fusion.com/how-to-use-instagram-feeds-to-boost-traffic-and-conversions/)
|
135 |
-
Elegant Themes: [7 Great Instagram Plugins for Sharing Your Feed](https://www.elegantthemes.com/blog/wordpress/instagram-plugins-for-sharing-your-feed)
|
136 |
-
aThemes: [Best WordPress Instagram Plugins 2020](https://athemes.com/collections/best-wordpress-instagram-plugins/)
|
137 |
-
WPExplorer: [How to Add Instagram Photos to WordPress](https://www.wpexplorer.com/add-instagram-wordpress/)
|
138 |
|
139 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
140 |
|
141 |
== Installation ==
|
142 |
|
143 |
-
= Method 1 =
|
144 |
|
145 |
1. Go to the Plugins page in your WordPress site's dashboard.
|
146 |
2. Click on the "Add New" button.
|
@@ -148,28 +145,36 @@ WPExplorer: [How to Add Instagram Photos to WordPress](https://www.wpexplorer.co
|
|
148 |
4. Click on the "Install" button next to it, then hit "Activate".
|
149 |
5. Go to the “Instagram Feeds” menu item to get started.
|
150 |
|
151 |
-
= Method 2 =
|
152 |
|
153 |
1. Click on the "Download" button above.
|
154 |
2. Upload the zip file to your site from the Plugins page in your WordPress site's dashboard.
|
155 |
3. Activate the plugin.
|
156 |
4. Go to the “Instagram Feeds” menu item to get started.
|
157 |
|
158 |
-
=
|
|
|
|
|
|
|
|
|
159 |
|
160 |
-
|
161 |
|
162 |
-
|
163 |
|
164 |
-
|
165 |
|
166 |
-
|
|
|
|
|
|
|
|
|
167 |
|
168 |
== Frequently Asked Questions ==
|
169 |
|
170 |
= How do I connect my Instagram account? =
|
171 |
|
172 |
-
Once you install Spotlight, a welcome screen appears that guides you on how to connect your first Instagram user account. Click on the connect button and it will show you two options, [Personal or Business](https://docs.spotlightwp.com/article/553-what-is-the-difference-between-instagram-personal-and-business-accounts). Pick the one that applies to you,
|
173 |
|
174 |
- - -
|
175 |
|
@@ -199,23 +204,31 @@ Yes. With Spotlight you can embed multiple Instagram feeds on a single page, a s
|
|
199 |
|
200 |
= Can I show full-size photos and play Instagram videos directly on my website? =
|
201 |
|
202 |
-
Yes, Spotlight's free version includes a lightbox (popup)
|
|
|
|
|
203 |
|
204 |
- - -
|
205 |
|
206 |
= Where can I find my Instagram Access Token and User ID? =
|
207 |
|
208 |
-
|
|
|
|
|
209 |
|
210 |
- - -
|
211 |
|
212 |
= How can I only display posts that use a particular Instagram hashtag? =
|
213 |
|
214 |
-
With Spotlight PRO
|
|
|
|
|
|
|
|
|
215 |
|
216 |
- - -
|
217 |
|
218 |
-
= Can I
|
219 |
|
220 |
Yes, we understand that you may have certain posts that you don't want to show on your website. By using the Moderation option in Spotlight PRO you can hand-pick the photos and videos that you either want to show or hide on your website. [Learn more.](https://spotlightwp.com/features/?utm_source=readme&utm_medium=readme_faq&utm_campaign=readme_faq_moderation)
|
221 |
|
@@ -223,19 +236,13 @@ Yes, we understand that you may have certain posts that you don't want to show o
|
|
223 |
|
224 |
= Will the Instagram feed from Spotlight blend nicely into my website's theme? =
|
225 |
|
226 |
-
Yes, aside from the
|
227 |
|
228 |
- - -
|
229 |
|
230 |
-
= Why is my Instagram feed not showing? =
|
231 |
-
|
232 |
-
There are a few reasons that your Instagram posts are not displayed on your site, either within Spotlight's editor or on the front-end. Here are the reasons and their potential fixes:
|
233 |
|
234 |
-
|
235 |
-
- **Caching Plugin Conflicts:** Some plugins, such as W3 Total Cache, can conflict with Spotlight by minifying certain files that should not be minified. Taking W3 Total Cache as an example, simply disabling minification for just one of our JS files does the trick. By instructing W3 Total Cache to ignore the file, you should be able to get the feed working again on your site without sacrificing the performance of the rest of the page. The file in question is: wp-content/plugins/spotlight-social-photo-feeds/ui/dist/common.js
|
236 |
-
- **WP REST API Disabled:** We've found that certain websites use plugins or otherwise to disabled the WordPress REST API. Since Spotlight uses the WP REST API, if disabled, the plugin will not function correctly. Re-enabling the WP REST API should fix this issue.
|
237 |
-
|
238 |
-
If none of these solutions work for you, please do contact us through the [support forum](https://wordpress.org/support/plugin/spotlight-social-photo-feeds/) with a link to a page on your website where the Instagram feed is being displayed, details on how the above tests went, and if possible, a link to your Instagram account.
|
239 |
|
240 |
|
241 |
== Screenshots ==
|
@@ -250,6 +257,14 @@ If none of these solutions work for you, please do contact us through the [suppo
|
|
250 |
|
251 |
== Changelog ==
|
252 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
253 |
= 0.5.3 (2021-02-04) =
|
254 |
|
255 |
**Added**
|
2 |
|
3 |
Contributors: RebelCode, spotlightsocialfeeds, markzahra, Mekku, jeangalea
|
4 |
Plugin URI: https://spotlightwp.com
|
5 |
+
Tags: Instagram, Instagram feed, Instagram feeds, Instagram widget, Instagram embed, social media, social media feed, social media feeds, Instagram posts, Instagram gallery, Instagram stories, hashtag
|
6 |
Requires at least: 5.0
|
7 |
Requires PHP: 7.1
|
8 |
Tested up to: 5.6
|
9 |
+
Stable tag: 0.5.4
|
10 |
License: GPLv3
|
11 |
|
12 |
== Description ==
|
13 |
|
14 |
+
**The best no-code Instagram feed solution for your website.** Connect multiple Instagram accounts and create unlimited Instagram feeds to embed across your website. A simple way to share your Instagram content with the world in a beautiful gallery.
|
15 |
|
16 |
+
[**Instagram Feed Demos**](https://spotlightwp.com/demo/?utm_source=readme&utm_medium=readme_desc&utm_campaign=readme_desc_topdemos) | [Compare Free vs PRO](https://spotlightwp.com/features/compare-free-vs-pro/?utm_source=readme&utm_medium=readme_desc&utm_campaign=readme_desc_topcomparecta) | [Buy Spotlight PRO](https://spotlightwp.com/pricing/?utm_source=readme&utm_medium=readme_desc&utm_campaign=readme_desc_topbuypro)
|
17 |
|
18 |
+
== Embed any Instagram feed in under 2 minutes ==
|
19 |
|
20 |
+
Follow **3 simple steps** from start to finish:
|
21 |
|
22 |
+
1. Connect an [Instagram](https://www.instagram.com/) account/s.
|
23 |
+
2. Design your Instagram feed's look.
|
24 |
+
3. Add it to any **page, sidebar, footer, post, etc**.
|
25 |
|
26 |
+
No coding or complex shortcodes required. Check out the 2-minute video below for a quick overview of how to embed Instagram feeds on any WordPress site.
|
27 |
|
28 |
+
https://www.youtube.com/watch?v=tpQFrU5w7G8&feature=emb_title
|
29 |
|
30 |
+
== Free Features ==
|
31 |
|
32 |
+
- Connect one or **multiple Instagram accounts**.
|
33 |
+
- Combine multiple Instagram accounts into a single gallery.
|
34 |
+
- Create **unlimited Instagram feeds** to use across your site.
|
35 |
+
- **Beautiful grid layout** instantly provided.
|
36 |
+
- **Customise the design**, including padding and font sizes.
|
37 |
+
- **Order posts** by date, popularity, or at random.
|
38 |
+
- Change the **number of columns** in the feed.
|
39 |
+
- Change the **number of posts** shown in the feed.
|
40 |
+
- Change the **size of the feed**'s photos or leave it to automatically take up the area it is added to.
|
41 |
+
- **Free popup lightbox** to show full-size photos and playable videos directly on your website. Keep everyone engaged.
|
42 |
+
- Add a **stylish feed header** with the Instagram account's profile bio and avatar.
|
43 |
+
- Add a **custom bio text and profile photo** per account or feed.
|
44 |
+
- Set custom text and colours for the **“Follow” button**.
|
45 |
+
- Set custom text and colours for the **“Load More” button**.
|
46 |
+
- Show or hide the feed header, "Follow" button", and "Load More" button.
|
47 |
+
- Uses your theme's fonts and styles to blend in automatically.
|
48 |
+
- The entire feed is **responsive** and customisable per device.
|
49 |
+
- **Embed on any page, post, footer or sidebar** using our block, widget and shortcode.
|
50 |
+
- **BONUS: Live interactive preview** to see exactly what you're designing before embedding it anywhere on your site.
|
51 |
|
52 |
+
**For Agencies and Developers**: Spotlight provides an [Access Token Generator](https://spotlightwp.com/access-token-generator/) so clients won't need to share personal login details with you.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
|
54 |
+
== Why Instagram Feeds? Top 3 Benefits: ==
|
55 |
|
56 |
+
**1. Create Connections and Increase Engagement**
|
57 |
+
Boost the social engagement on your website and increase your Instagram follower count. Add a "Follow" button to your Instagram gallery to turn site visitors into Instagram followers.
|
58 |
|
59 |
+
**2. Add Social Proof With Minimal Effort**
|
60 |
+
Instagram is a great platform for building relationships. Make the most of it by sharing your existing Instagram photos, videos, likes and comments with website visitors. Instant social proof to last a lifetime.
|
61 |
|
62 |
+
**3. Automatically Updated Fresh Content - A Time-Saver!**
|
63 |
+
As you post new photos and videos to Instagram, Spotlight adds them to your website. Keep your site looking fresh and current without having to create separate content for it.
|
64 |
|
65 |
+
**Bonus! Enhance your "Coming soon" and "Maintenance" Pages**
|
66 |
+
Make your "Coming Soon" and "Maintenance" pages stand out by embedding an Instagram feed. Turn those otherwise lost site visitors into Instagram followers to **generate new leads**.
|
67 |
|
68 |
+
== Why Choose Spotlight? ==
|
|
|
69 |
|
70 |
+
**1. Easy to Use**
|
71 |
+
From connecting your first Instagram account to having it embedded on your website in under 2 minutes. Even less if you use the default settings.
|
72 |
|
73 |
+
**2. Fun to Set Up**
|
74 |
+
Gone are the days of long settings pages, complex shortcodes and having to embed a feed first before seeing what it looks like. With Spotlight you do all that in a beautiful live preview editor with point-and-click options.
|
75 |
|
76 |
+
**3. Fast and Helpful Support**
|
77 |
+
Spotlight is designed, developed and supported by Mark, Miguel and Gaby. We provide support for both the free and PRO versions of Spotlight and develop new features on a monthly basis. Whenever you have a question, we're here for you.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
|
79 |
- [Documentation](https://docs.spotlightwp.com/)
|
80 |
- [Free support (forum)](https://wordpress.org/support/plugin/spotlight-social-photo-feeds/)
|
81 |
- [Premium support (email)](https://spotlightwp.com/support/?utm_source=readme&utm_medium=readme_desc&utm_campaign=readme_desc_support)
|
82 |
|
83 |
+
== PRO Features ==
|
|
|
|
|
84 |
|
85 |
+
Level up your Instagram feeds with **[Spotlight PRO](https://spotlightwp.com/pricing/?utm_source=readme&utm_medium=readme_desc&utm_campaign=readme_desc_upgrade)**. More layouts, new customisation options, engaging **hashtag feeds**, **filtering** and **moderation**, **shoppable Instagram feeds**, and much more.
|
86 |
|
87 |
+
[**Buy Spotlight PRO**](https://spotlightwp.com/pricing/?utm_source=readme&utm_medium=readme_desc&utm_campaign=readme_desc_upgradebuypro) | [Demos](https://spotlightwp.com/demo/?utm_source=readme&utm_medium=readme_desc&utm_campaign=readme_desc_upgradedemos) | [Compare Free vs PRO](https://spotlightwp.com/features/compare-free-vs-pro/?utm_source=readme&utm_medium=readme_desc&utm_campaign=readme_desc_upgradecomparecta)
|
88 |
|
89 |
+
Here's a look at some of the PRO features currently available:
|
90 |
|
91 |
- Hashtag feeds - most popular/recent from across Instagram
|
92 |
- Tagged post feeds - show where your account is tagged
|
93 |
- Caption filtering
|
94 |
- Hashtag filtering
|
95 |
- Visual moderation (hand-pick which posts to show/hide)
|
96 |
+
- Promote: link to posts, pages, WooCommerce products and more
|
97 |
+
- Promote: add call-to-actions to your Instagram posts
|
98 |
+
- Promote: automatically link Instagram posts by hashtag
|
99 |
- Highlight layout
|
100 |
- Masonry layout
|
101 |
+
- Slider layout
|
102 |
- Hover styles
|
103 |
- Header styles
|
104 |
+
- Show captions and like & comment counts in the feed
|
105 |
- Embed Instagram stories in the profile photo (just like Instagram)
|
|
|
106 |
|
107 |
+
**BONUS: Elementor Instagram Widget** - Officially Recommended
|
108 |
+
|
109 |
+
Watch a full [Spotlight PRO](https://spotlightwp.com/pricing/?utm_source=readme&utm_medium=readme_desc&utm_campaign=readme_desc_upgradevideo) review by WP Crafter:
|
110 |
+
|
111 |
+
https://www.youtube.com/watch?v=FaOoCzxHpgw
|
112 |
+
|
113 |
+
== More Recommendations ==
|
114 |
|
115 |
+
**Real User Reviews**
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
116 |
|
117 |
+
- "If you're ready to **start nailing the BIG 3 C's of having a website**, that is building credibility, staying current, and having a better connection with your website visitors, check out Spotlight Instagram feeds today."
|
118 |
+
Adam, WP Crafter Youtube Channel
|
119 |
+
- "**Out of all of the Instagram integration plugins out there, this is one that I would by far recommend the most.** The plugin itself is easy to use for anyone – especially a beginner."
|
120 |
+
Tim, Spotlight Free User
|
121 |
+
- "Excellent, Powerful, Smooth - **This is an incredible plugin and the support given is second to none** – they will stop at nothing to help you solve your problems. Thank you!"
|
122 |
+
Forson, Spotlight Free User
|
123 |
+
- I’ve used other Instagram feed plugins before and this one is the best! **Very happy with this PRO upgrade purchase.** Keep up the great work!!
|
124 |
+
Rommel, Spotlight PRO customer
|
125 |
+
|
126 |
+
**Featured In Various Publications**:
|
127 |
+
|
128 |
+
- Hubspot: [Top 3 Free Instagram Plugins for WordPress](https://blog.hubspot.com/website/top-free-instagram-plugins-wordpress-site)
|
129 |
+
- Elementor: [Best Instagram Plugins for WordPress](https://elementor.com/blog/best-instagram-plugins-wordpress/)
|
130 |
+
- WP Mayor: [How to Import Instagram Photos to WordPress](https://wpmayor.com/import-instagram-photos-wordpress/)
|
131 |
+
- Kinsta: [WordPress Instagram Plugins](https://kinsta.com/blog/wordpress-instagram-plugin/)
|
132 |
+
- BobWP: [How to Improve WooCommerce Sales Using Instagram](https://bobwp.com/how-to-improve-woocommerce-sales-using-your-instagram-feed/)
|
133 |
+
- Avada: [Use Instagram Feeds to Boost Traffic and Conversions](https://theme-fusion.com/how-to-use-instagram-feeds-to-boost-traffic-and-conversions/)
|
134 |
+
- Elegant Themes: [7 Great Instagram Plugins for Sharing Your Feed](https://www.elegantthemes.com/blog/wordpress/instagram-plugins-for-sharing-your-feed)
|
135 |
+
- aThemes: [Best WordPress Instagram Plugins 2020](https://athemes.com/collections/best-wordpress-instagram-plugins/)
|
136 |
+
- WPExplorer: [How to Add Instagram Photos to WordPress](https://www.wpexplorer.com/add-instagram-wordpress/)
|
137 |
|
138 |
== Installation ==
|
139 |
|
140 |
+
= Installation Method 1 =
|
141 |
|
142 |
1. Go to the Plugins page in your WordPress site's dashboard.
|
143 |
2. Click on the "Add New" button.
|
145 |
4. Click on the "Install" button next to it, then hit "Activate".
|
146 |
5. Go to the “Instagram Feeds” menu item to get started.
|
147 |
|
148 |
+
= Installation Method 2 =
|
149 |
|
150 |
1. Click on the "Download" button above.
|
151 |
2. Upload the zip file to your site from the Plugins page in your WordPress site's dashboard.
|
152 |
3. Activate the plugin.
|
153 |
4. Go to the “Instagram Feeds” menu item to get started.
|
154 |
|
155 |
+
= 1. Connect Your Instagram Account =
|
156 |
+
|
157 |
+
Follow the instructions on the screen to connect your, or your clients' Instagram account. You may connect multiple Instagram accounts and manage them all from the Instagram Feeds > Settings > Accounts page. More information on how to connect Instagram accounts in Spotlight is provided in our documentation [here](https://docs.spotlightwp.com/category/517-connecting-accounts).
|
158 |
+
|
159 |
+
= 2. Design Your Instagram Feed =
|
160 |
|
161 |
+
Once an Instagram account is connected, go to the Design step and start customising the feed. More information on each design option is provided in our documentation [here](https://docs.spotlightwp.com/category/509-the-editor).
|
162 |
|
163 |
+
**BONUS**: Spotlight's Instagram feeds are responsive by default, but you can also design your feed per device to make it look just the way you want! More information on Spotlight's responsiveness options are provided in our documentation [here](https://docs.spotlightwp.com/category/516-live-preview).
|
164 |
|
165 |
+
= 3. Embed Your Instagram Feed =
|
166 |
|
167 |
+
Spotlight provides three methods to embed your Instagram feed in its free version.
|
168 |
+
|
169 |
+
- [Block](https://docs.spotlightwp.com/article/581-block) - "Spotlight Instagram Feed"
|
170 |
+
- [Widget](https://docs.spotlightwp.com/article/580-widget) - "Spotlight Instagram Feed"
|
171 |
+
- [Shortcode](https://docs.spotlightwp.com/article/579-shortcode) - [instagram feed="456"]
|
172 |
|
173 |
== Frequently Asked Questions ==
|
174 |
|
175 |
= How do I connect my Instagram account? =
|
176 |
|
177 |
+
Once you install Spotlight, a welcome screen appears that guides you on how to connect your first Instagram user account. Click on the connect button and it will show you two options, [Personal or Business](https://docs.spotlightwp.com/article/553-what-is-the-difference-between-instagram-personal-and-business-accounts). Pick the one that applies to you, authorise Spotlight through the popup that appears and you’re all set.
|
178 |
|
179 |
- - -
|
180 |
|
204 |
|
205 |
= Can I show full-size photos and play Instagram videos directly on my website? =
|
206 |
|
207 |
+
Yes, Spotlight's free version includes a lightbox (popup) that will display your photos and playable videos in their full size over your entire website. Keep site visitors exactly where you want them - on your website!
|
208 |
+
|
209 |
+
If you want to enhance the popup, [Spotlight PRO adds a sidebar](https://spotlightwp.com/pricing/?utm_source=readme&utm_medium=readme_faq&utm_campaign=readme_faq_fullsizeandvideos) to the lightbox which will display your Instagram captions, comments, published date, and more.
|
210 |
|
211 |
- - -
|
212 |
|
213 |
= Where can I find my Instagram Access Token and User ID? =
|
214 |
|
215 |
+
Option 1: Use Spotlight's [Access Token Generator](https://spotlightwp.com/access-token-generator/).
|
216 |
+
|
217 |
+
Option 2: If your Instagram account is already connected in Spotlight, go to Instagram Feeds > Settings. From the first page, Accounts, click on the Instagram username or the "info" option under Actions.
|
218 |
|
219 |
- - -
|
220 |
|
221 |
= How can I only display posts that use a particular Instagram hashtag? =
|
222 |
|
223 |
+
With [Spotlight PRO](https://spotlightwp.com/pricing/?utm_source=readme&utm_medium=readme_faq&utm_campaign=readme_faq_hashtag) you can use either of two options.
|
224 |
+
|
225 |
+
Firstly, you can choose to display posts that include a specific hashtag from all across Instagram. ([Learn more](https://docs.spotlightwp.com/article/622-how-to-display-hashtag-feeds)).
|
226 |
+
|
227 |
+
Secondly, you can use Hashtag filtering to show or hide posts from your connected Instagram account that use a specific hashtag. [Learn more.](https://spotlightwp.com/features/?utm_source=readme&utm_medium=readme_faq&utm_campaign=readme_faq_hashtagfeed)
|
228 |
|
229 |
- - -
|
230 |
|
231 |
+
= Can I hand-pick specific posts to hide or show in my Instagram feed? =
|
232 |
|
233 |
Yes, we understand that you may have certain posts that you don't want to show on your website. By using the Moderation option in Spotlight PRO you can hand-pick the photos and videos that you either want to show or hide on your website. [Learn more.](https://spotlightwp.com/features/?utm_source=readme&utm_medium=readme_faq&utm_campaign=readme_faq_moderation)
|
234 |
|
236 |
|
237 |
= Will the Instagram feed from Spotlight blend nicely into my website's theme? =
|
238 |
|
239 |
+
Yes, aside from the customisation options provided by Spotlight itself, the plugin is also set up to use your theme's fonts to completely match your brand's look and feel on your website.
|
240 |
|
241 |
- - -
|
242 |
|
243 |
+
= Why is my Instagram feed not showing correctly or at all? =
|
|
|
|
|
244 |
|
245 |
+
There are a few reasons that this may happen. We have documented the reasons and solutions [here](https://docs.spotlightwp.com/collection/524-troubleshooting).
|
|
|
|
|
|
|
|
|
246 |
|
247 |
|
248 |
== Screenshots ==
|
257 |
|
258 |
== Changelog ==
|
259 |
|
260 |
+
= 0.5.4 (2021-02-11) =
|
261 |
+
|
262 |
+
**Changed**
|
263 |
+
- Now detecting a conflict with the official "Facebook for WordPress" plugin
|
264 |
+
|
265 |
+
**Fixed**
|
266 |
+
- Fixed "Argument 1 passed" error when viewing/previewing a feed
|
267 |
+
|
268 |
= 0.5.3 (2021-02-04) =
|
269 |
|
270 |
**Added**
|
vendor/autoload.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInit3c37148f2a9d7f2cf3c8354f19e8d525::getLoader();
|
vendor/composer/ClassLoader.php
CHANGED
@@ -42,6 +42,8 @@ namespace Composer\Autoload;
|
|
42 |
*/
|
43 |
class ClassLoader
|
44 |
{
|
|
|
|
|
45 |
// PSR-4
|
46 |
private $prefixLengthsPsr4 = array();
|
47 |
private $prefixDirsPsr4 = array();
|
@@ -57,6 +59,13 @@ class ClassLoader
|
|
57 |
private $missingClasses = array();
|
58 |
private $apcuPrefix;
|
59 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
60 |
public function getPrefixes()
|
61 |
{
|
62 |
if (!empty($this->prefixesPsr0)) {
|
@@ -300,6 +309,15 @@ class ClassLoader
|
|
300 |
public function register($prepend = false)
|
301 |
{
|
302 |
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
303 |
}
|
304 |
|
305 |
/**
|
@@ -308,6 +326,10 @@ class ClassLoader
|
|
308 |
public function unregister()
|
309 |
{
|
310 |
spl_autoload_unregister(array($this, 'loadClass'));
|
|
|
|
|
|
|
|
|
311 |
}
|
312 |
|
313 |
/**
|
@@ -367,6 +389,16 @@ class ClassLoader
|
|
367 |
return $file;
|
368 |
}
|
369 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
370 |
private function findFileWithExtension($class, $ext)
|
371 |
{
|
372 |
// PSR-4 lookup
|
42 |
*/
|
43 |
class ClassLoader
|
44 |
{
|
45 |
+
private $vendorDir;
|
46 |
+
|
47 |
// PSR-4
|
48 |
private $prefixLengthsPsr4 = array();
|
49 |
private $prefixDirsPsr4 = array();
|
59 |
private $missingClasses = array();
|
60 |
private $apcuPrefix;
|
61 |
|
62 |
+
private static $registeredLoaders = array();
|
63 |
+
|
64 |
+
public function __construct($vendorDir = null)
|
65 |
+
{
|
66 |
+
$this->vendorDir = $vendorDir;
|
67 |
+
}
|
68 |
+
|
69 |
public function getPrefixes()
|
70 |
{
|
71 |
if (!empty($this->prefixesPsr0)) {
|
309 |
public function register($prepend = false)
|
310 |
{
|
311 |
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
|
312 |
+
|
313 |
+
if (null === $this->vendorDir) {
|
314 |
+
//no-op
|
315 |
+
} elseif ($prepend) {
|
316 |
+
self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
|
317 |
+
} else {
|
318 |
+
unset(self::$registeredLoaders[$this->vendorDir]);
|
319 |
+
self::$registeredLoaders[$this->vendorDir] = $this;
|
320 |
+
}
|
321 |
}
|
322 |
|
323 |
/**
|
326 |
public function unregister()
|
327 |
{
|
328 |
spl_autoload_unregister(array($this, 'loadClass'));
|
329 |
+
|
330 |
+
if (null !== $this->vendorDir) {
|
331 |
+
unset(self::$registeredLoaders[$this->vendorDir]);
|
332 |
+
}
|
333 |
}
|
334 |
|
335 |
/**
|
389 |
return $file;
|
390 |
}
|
391 |
|
392 |
+
/**
|
393 |
+
* Returns the currently registered loaders indexed by their corresponding vendor directories.
|
394 |
+
*
|
395 |
+
* @return self[]
|
396 |
+
*/
|
397 |
+
public static function getRegisteredLoaders()
|
398 |
+
{
|
399 |
+
return self::$registeredLoaders;
|
400 |
+
}
|
401 |
+
|
402 |
private function findFileWithExtension($class, $ext)
|
403 |
{
|
404 |
// PSR-4 lookup
|
vendor/composer/InstalledVersions.php
CHANGED
@@ -12,6 +12,7 @@
|
|
12 |
|
13 |
namespace Composer;
|
14 |
|
|
|
15 |
use Composer\Semver\VersionParser;
|
16 |
|
17 |
|
@@ -29,7 +30,7 @@ private static $installed = array (
|
|
29 |
'aliases' =>
|
30 |
array (
|
31 |
),
|
32 |
-
'reference' => '
|
33 |
'name' => 'rebelcode/instagram',
|
34 |
),
|
35 |
'versions' =>
|
@@ -246,7 +247,7 @@ private static $installed = array (
|
|
246 |
'aliases' =>
|
247 |
array (
|
248 |
),
|
249 |
-
'reference' => '
|
250 |
),
|
251 |
'symfony/polyfill-intl-idn' =>
|
252 |
array (
|
@@ -287,6 +288,8 @@ private static $installed = array (
|
|
287 |
),
|
288 |
),
|
289 |
);
|
|
|
|
|
290 |
|
291 |
|
292 |
|
@@ -296,7 +299,17 @@ private static $installed = array (
|
|
296 |
|
297 |
public static function getInstalledPackages()
|
298 |
{
|
299 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
300 |
}
|
301 |
|
302 |
|
@@ -309,7 +322,13 @@ return array_keys(self::$installed['versions']);
|
|
309 |
|
310 |
public static function isInstalled($packageName)
|
311 |
{
|
312 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
313 |
}
|
314 |
|
315 |
|
@@ -344,42 +363,50 @@ return $provided->matches($constraint);
|
|
344 |
|
345 |
public static function getVersionRanges($packageName)
|
346 |
{
|
347 |
-
|
348 |
-
|
|
|
349 |
}
|
350 |
|
351 |
$ranges = array();
|
352 |
-
if (isset(
|
353 |
-
$ranges[] =
|
354 |
}
|
355 |
-
if (array_key_exists('aliases',
|
356 |
-
$ranges = array_merge($ranges,
|
357 |
}
|
358 |
-
if (array_key_exists('replaced',
|
359 |
-
$ranges = array_merge($ranges,
|
360 |
}
|
361 |
-
if (array_key_exists('provided',
|
362 |
-
$ranges = array_merge($ranges,
|
363 |
}
|
364 |
|
365 |
return implode(' || ', $ranges);
|
366 |
}
|
367 |
|
|
|
|
|
|
|
368 |
|
369 |
|
370 |
|
371 |
|
372 |
public static function getVersion($packageName)
|
373 |
{
|
374 |
-
|
375 |
-
|
|
|
376 |
}
|
377 |
|
378 |
-
if (!isset(
|
379 |
return null;
|
380 |
}
|
381 |
|
382 |
-
return
|
|
|
|
|
|
|
383 |
}
|
384 |
|
385 |
|
@@ -388,15 +415,19 @@ return self::$installed['versions'][$packageName]['version'];
|
|
388 |
|
389 |
public static function getPrettyVersion($packageName)
|
390 |
{
|
391 |
-
|
392 |
-
|
|
|
393 |
}
|
394 |
|
395 |
-
if (!isset(
|
396 |
return null;
|
397 |
}
|
398 |
|
399 |
-
return
|
|
|
|
|
|
|
400 |
}
|
401 |
|
402 |
|
@@ -405,15 +436,19 @@ return self::$installed['versions'][$packageName]['pretty_version'];
|
|
405 |
|
406 |
public static function getReference($packageName)
|
407 |
{
|
408 |
-
|
409 |
-
|
|
|
410 |
}
|
411 |
|
412 |
-
if (!isset(
|
413 |
return null;
|
414 |
}
|
415 |
|
416 |
-
return
|
|
|
|
|
|
|
417 |
}
|
418 |
|
419 |
|
@@ -422,7 +457,9 @@ return self::$installed['versions'][$packageName]['reference'];
|
|
422 |
|
423 |
public static function getRootPackage()
|
424 |
{
|
425 |
-
|
|
|
|
|
426 |
}
|
427 |
|
428 |
|
@@ -457,5 +494,33 @@ return self::$installed;
|
|
457 |
public static function reload($data)
|
458 |
{
|
459 |
self::$installed = $data;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
460 |
}
|
461 |
}
|
12 |
|
13 |
namespace Composer;
|
14 |
|
15 |
+
use Composer\Autoload\ClassLoader;
|
16 |
use Composer\Semver\VersionParser;
|
17 |
|
18 |
|
30 |
'aliases' =>
|
31 |
array (
|
32 |
),
|
33 |
+
'reference' => 'c96a6cc1a9cb28b930f9cbcb3eefc90ee751d84e',
|
34 |
'name' => 'rebelcode/instagram',
|
35 |
),
|
36 |
'versions' =>
|
247 |
'aliases' =>
|
248 |
array (
|
249 |
),
|
250 |
+
'reference' => 'c96a6cc1a9cb28b930f9cbcb3eefc90ee751d84e',
|
251 |
),
|
252 |
'symfony/polyfill-intl-idn' =>
|
253 |
array (
|
288 |
),
|
289 |
),
|
290 |
);
|
291 |
+
private static $canGetVendors;
|
292 |
+
private static $installedByVendor = array();
|
293 |
|
294 |
|
295 |
|
299 |
|
300 |
public static function getInstalledPackages()
|
301 |
{
|
302 |
+
$packages = array();
|
303 |
+
foreach (self::getInstalled() as $installed) {
|
304 |
+
$packages[] = array_keys($installed['versions']);
|
305 |
+
}
|
306 |
+
|
307 |
+
|
308 |
+
if (1 === \count($packages)) {
|
309 |
+
return $packages[0];
|
310 |
+
}
|
311 |
+
|
312 |
+
return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
|
313 |
}
|
314 |
|
315 |
|
322 |
|
323 |
public static function isInstalled($packageName)
|
324 |
{
|
325 |
+
foreach (self::getInstalled() as $installed) {
|
326 |
+
if (isset($installed['versions'][$packageName])) {
|
327 |
+
return true;
|
328 |
+
}
|
329 |
+
}
|
330 |
+
|
331 |
+
return false;
|
332 |
}
|
333 |
|
334 |
|
363 |
|
364 |
public static function getVersionRanges($packageName)
|
365 |
{
|
366 |
+
foreach (self::getInstalled() as $installed) {
|
367 |
+
if (!isset($installed['versions'][$packageName])) {
|
368 |
+
continue;
|
369 |
}
|
370 |
|
371 |
$ranges = array();
|
372 |
+
if (isset($installed['versions'][$packageName]['pretty_version'])) {
|
373 |
+
$ranges[] = $installed['versions'][$packageName]['pretty_version'];
|
374 |
}
|
375 |
+
if (array_key_exists('aliases', $installed['versions'][$packageName])) {
|
376 |
+
$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
|
377 |
}
|
378 |
+
if (array_key_exists('replaced', $installed['versions'][$packageName])) {
|
379 |
+
$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
|
380 |
}
|
381 |
+
if (array_key_exists('provided', $installed['versions'][$packageName])) {
|
382 |
+
$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
|
383 |
}
|
384 |
|
385 |
return implode(' || ', $ranges);
|
386 |
}
|
387 |
|
388 |
+
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
389 |
+
}
|
390 |
+
|
391 |
|
392 |
|
393 |
|
394 |
|
395 |
public static function getVersion($packageName)
|
396 |
{
|
397 |
+
foreach (self::getInstalled() as $installed) {
|
398 |
+
if (!isset($installed['versions'][$packageName])) {
|
399 |
+
continue;
|
400 |
}
|
401 |
|
402 |
+
if (!isset($installed['versions'][$packageName]['version'])) {
|
403 |
return null;
|
404 |
}
|
405 |
|
406 |
+
return $installed['versions'][$packageName]['version'];
|
407 |
+
}
|
408 |
+
|
409 |
+
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
410 |
}
|
411 |
|
412 |
|
415 |
|
416 |
public static function getPrettyVersion($packageName)
|
417 |
{
|
418 |
+
foreach (self::getInstalled() as $installed) {
|
419 |
+
if (!isset($installed['versions'][$packageName])) {
|
420 |
+
continue;
|
421 |
}
|
422 |
|
423 |
+
if (!isset($installed['versions'][$packageName]['pretty_version'])) {
|
424 |
return null;
|
425 |
}
|
426 |
|
427 |
+
return $installed['versions'][$packageName]['pretty_version'];
|
428 |
+
}
|
429 |
+
|
430 |
+
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
431 |
}
|
432 |
|
433 |
|
436 |
|
437 |
public static function getReference($packageName)
|
438 |
{
|
439 |
+
foreach (self::getInstalled() as $installed) {
|
440 |
+
if (!isset($installed['versions'][$packageName])) {
|
441 |
+
continue;
|
442 |
}
|
443 |
|
444 |
+
if (!isset($installed['versions'][$packageName]['reference'])) {
|
445 |
return null;
|
446 |
}
|
447 |
|
448 |
+
return $installed['versions'][$packageName]['reference'];
|
449 |
+
}
|
450 |
+
|
451 |
+
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
452 |
}
|
453 |
|
454 |
|
457 |
|
458 |
public static function getRootPackage()
|
459 |
{
|
460 |
+
$installed = self::getInstalled();
|
461 |
+
|
462 |
+
return $installed[0]['root'];
|
463 |
}
|
464 |
|
465 |
|
494 |
public static function reload($data)
|
495 |
{
|
496 |
self::$installed = $data;
|
497 |
+
self::$installedByVendor = array();
|
498 |
+
}
|
499 |
+
|
500 |
+
|
501 |
+
|
502 |
+
|
503 |
+
private static function getInstalled()
|
504 |
+
{
|
505 |
+
if (null === self::$canGetVendors) {
|
506 |
+
self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
|
507 |
+
}
|
508 |
+
|
509 |
+
$installed = array();
|
510 |
+
|
511 |
+
if (self::$canGetVendors) {
|
512 |
+
|
513 |
+
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
|
514 |
+
if (isset(self::$installedByVendor[$vendorDir])) {
|
515 |
+
$installed[] = self::$installedByVendor[$vendorDir];
|
516 |
+
} elseif (is_file($vendorDir.'/composer/installed.php')) {
|
517 |
+
$installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
|
518 |
+
}
|
519 |
+
}
|
520 |
+
}
|
521 |
+
|
522 |
+
$installed[] = self::$installed;
|
523 |
+
|
524 |
+
return $installed;
|
525 |
}
|
526 |
}
|
vendor/composer/autoload_real.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
-
class
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
@@ -24,15 +24,15 @@ class ComposerAutoloaderInitae2eca6a7f4155ea7339a5ce743c8a08
|
|
24 |
|
25 |
require __DIR__ . '/platform_check.php';
|
26 |
|
27 |
-
spl_autoload_register(array('
|
28 |
-
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
29 |
-
spl_autoload_unregister(array('
|
30 |
|
31 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
32 |
if ($useStaticLoader) {
|
33 |
require __DIR__ . '/autoload_static.php';
|
34 |
|
35 |
-
call_user_func(\Composer\Autoload\
|
36 |
} else {
|
37 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
38 |
foreach ($map as $namespace => $path) {
|
@@ -53,19 +53,19 @@ class ComposerAutoloaderInitae2eca6a7f4155ea7339a5ce743c8a08
|
|
53 |
$loader->register(true);
|
54 |
|
55 |
if ($useStaticLoader) {
|
56 |
-
$includeFiles = Composer\Autoload\
|
57 |
} else {
|
58 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
59 |
}
|
60 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
61 |
-
|
62 |
}
|
63 |
|
64 |
return $loader;
|
65 |
}
|
66 |
}
|
67 |
|
68 |
-
function
|
69 |
{
|
70 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
71 |
require $file;
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
+
class ComposerAutoloaderInit3c37148f2a9d7f2cf3c8354f19e8d525
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
24 |
|
25 |
require __DIR__ . '/platform_check.php';
|
26 |
|
27 |
+
spl_autoload_register(array('ComposerAutoloaderInit3c37148f2a9d7f2cf3c8354f19e8d525', 'loadClassLoader'), true, true);
|
28 |
+
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
|
29 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit3c37148f2a9d7f2cf3c8354f19e8d525', 'loadClassLoader'));
|
30 |
|
31 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
32 |
if ($useStaticLoader) {
|
33 |
require __DIR__ . '/autoload_static.php';
|
34 |
|
35 |
+
call_user_func(\Composer\Autoload\ComposerStaticInit3c37148f2a9d7f2cf3c8354f19e8d525::getInitializer($loader));
|
36 |
} else {
|
37 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
38 |
foreach ($map as $namespace => $path) {
|
53 |
$loader->register(true);
|
54 |
|
55 |
if ($useStaticLoader) {
|
56 |
+
$includeFiles = Composer\Autoload\ComposerStaticInit3c37148f2a9d7f2cf3c8354f19e8d525::$files;
|
57 |
} else {
|
58 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
59 |
}
|
60 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
61 |
+
composerRequire3c37148f2a9d7f2cf3c8354f19e8d525($fileIdentifier, $file);
|
62 |
}
|
63 |
|
64 |
return $loader;
|
65 |
}
|
66 |
}
|
67 |
|
68 |
+
function composerRequire3c37148f2a9d7f2cf3c8354f19e8d525($fileIdentifier, $file)
|
69 |
{
|
70 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
71 |
require $file;
|
vendor/composer/autoload_static.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
-
class
|
8 |
{
|
9 |
public static $files = array (
|
10 |
'25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',
|
@@ -603,9 +603,9 @@ class ComposerStaticInitae2eca6a7f4155ea7339a5ce743c8a08
|
|
603 |
public static function getInitializer(ClassLoader $loader)
|
604 |
{
|
605 |
return \Closure::bind(function () use ($loader) {
|
606 |
-
$loader->prefixLengthsPsr4 =
|
607 |
-
$loader->prefixDirsPsr4 =
|
608 |
-
$loader->classMap =
|
609 |
|
610 |
}, null, ClassLoader::class);
|
611 |
}
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
+
class ComposerStaticInit3c37148f2a9d7f2cf3c8354f19e8d525
|
8 |
{
|
9 |
public static $files = array (
|
10 |
'25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',
|
603 |
public static function getInitializer(ClassLoader $loader)
|
604 |
{
|
605 |
return \Closure::bind(function () use ($loader) {
|
606 |
+
$loader->prefixLengthsPsr4 = ComposerStaticInit3c37148f2a9d7f2cf3c8354f19e8d525::$prefixLengthsPsr4;
|
607 |
+
$loader->prefixDirsPsr4 = ComposerStaticInit3c37148f2a9d7f2cf3c8354f19e8d525::$prefixDirsPsr4;
|
608 |
+
$loader->classMap = ComposerStaticInit3c37148f2a9d7f2cf3c8354f19e8d525::$classMap;
|
609 |
|
610 |
}, null, ClassLoader::class);
|
611 |
}
|
vendor/composer/installed.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
'aliases' =>
|
7 |
array (
|
8 |
),
|
9 |
-
'reference' => '
|
10 |
'name' => 'rebelcode/instagram',
|
11 |
),
|
12 |
'versions' =>
|
@@ -223,7 +223,7 @@
|
|
223 |
'aliases' =>
|
224 |
array (
|
225 |
),
|
226 |
-
'reference' => '
|
227 |
),
|
228 |
'symfony/polyfill-intl-idn' =>
|
229 |
array (
|
6 |
'aliases' =>
|
7 |
array (
|
8 |
),
|
9 |
+
'reference' => 'c96a6cc1a9cb28b930f9cbcb3eefc90ee751d84e',
|
10 |
'name' => 'rebelcode/instagram',
|
11 |
),
|
12 |
'versions' =>
|
223 |
'aliases' =>
|
224 |
array (
|
225 |
),
|
226 |
+
'reference' => 'c96a6cc1a9cb28b930f9cbcb3eefc90ee751d84e',
|
227 |
),
|
228 |
'symfony/polyfill-intl-idn' =>
|
229 |
array (
|
vendor/container-interop/service-provider/.gitignore
DELETED
@@ -1,2 +0,0 @@
|
|
1 |
-
/composer.lock
|
2 |
-
/vendor/
|
|
|
|
vendor/dhii/stringable-interface/.gitignore
DELETED
@@ -1,4 +0,0 @@
|
|
1 |
-
/vendor/
|
2 |
-
/nbproject/private/
|
3 |
-
/test/coverage/
|
4 |
-
/test/log/
|
|
|
|
|
|
|
|
vendor/dhii/stringable-interface/.php_cs
DELETED
@@ -1,23 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
require_once __DIR__.DIRECTORY_SEPARATOR.'vendor/autoload.php';
|
3 |
-
$config = Dhii\Configuration\PHPCSFixer\Config::create();
|
4 |
-
$fixers = $config->getFixers();
|
5 |
-
$toRemove = array();
|
6 |
-
foreach ($toRemove as $_fixer) {
|
7 |
-
if (($removeIndex = array_search($_fixer, $fixers)) === false) {
|
8 |
-
continue;
|
9 |
-
}
|
10 |
-
|
11 |
-
unset($fixers[$removeIndex]);
|
12 |
-
}
|
13 |
-
$toAdd = array();
|
14 |
-
foreach ($toAdd as $_fixer) {
|
15 |
-
if (($removeIndex = array_search($_fixer, $fixers)) !== false) {
|
16 |
-
continue;
|
17 |
-
}
|
18 |
-
|
19 |
-
$fixers[] = $_fixer;
|
20 |
-
}
|
21 |
-
$config->fixers($fixers);
|
22 |
-
$config->getFinder()->in(__DIR__.DIRECTORY_SEPARATOR.'src');
|
23 |
-
return $config;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/dhii/stringable-interface/.travis.yml
DELETED
@@ -1,18 +0,0 @@
|
|
1 |
-
language: php
|
2 |
-
php:
|
3 |
-
- '5.3'
|
4 |
-
- '5.4'
|
5 |
-
- '5.5'
|
6 |
-
- '5.6'
|
7 |
-
- '7.0'
|
8 |
-
- '7.1'
|
9 |
-
- nightly
|
10 |
-
|
11 |
-
before_script:
|
12 |
-
- composer update
|
13 |
-
|
14 |
-
script:
|
15 |
-
- vendor/bin/phpunit
|
16 |
-
|
17 |
-
after_script:
|
18 |
-
- vendor/bin/test-reporter --coverage-report="test/coverage/clover.xml"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/dhii/stringable-interface/phpunit.xml
DELETED
@@ -1,35 +0,0 @@
|
|
1 |
-
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
-
<phpunit
|
3 |
-
colors="true"
|
4 |
-
bootstrap="test/bootstrap.php"
|
5 |
-
>
|
6 |
-
<php>
|
7 |
-
<ini name="display_errors" value="1" />
|
8 |
-
<ini name="display_startup_errors" value="1" />
|
9 |
-
</php>
|
10 |
-
<testsuites>
|
11 |
-
<testsuite name="Unit Tests">
|
12 |
-
<directory>./test/unit/</directory>
|
13 |
-
</testsuite>
|
14 |
-
<testsuite name="Functional Tests">
|
15 |
-
<directory>./test/functional/</directory>
|
16 |
-
</testsuite>
|
17 |
-
</testsuites>
|
18 |
-
<filter>
|
19 |
-
<whitelist processUncoveredFilesFromWhitelist="true">
|
20 |
-
<directory suffix=".php">src</directory>
|
21 |
-
</whitelist>
|
22 |
-
</filter>
|
23 |
-
<logging>
|
24 |
-
<log type="coverage-html" target="./test/coverage/html" lowUpperBound="35"
|
25 |
-
highLowerBound="80"/>
|
26 |
-
<log type="coverage-clover" target="./test/coverage/clover.xml"/>
|
27 |
-
<log type="coverage-php" target="./test/coverage/serialized"/>
|
28 |
-
<log type="coverage-text" target="php://stdout" showUncoveredFiles="false"/>
|
29 |
-
<log type="json" target="./test/log/logfile.json"/>
|
30 |
-
<log type="tap" target="./test/log/logfile.tap"/>
|
31 |
-
<log type="junit" target="./test/log/logfile.xml" logIncompleteSkipped="false"/>
|
32 |
-
<log type="testdox-html" target="./test/log/testdox.html"/>
|
33 |
-
<log type="testdox-text" target="./test/log/testdox.txt"/>
|
34 |
-
</logging>
|
35 |
-
</phpunit>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/guzzlehttp/guzzle/.php_cs
DELETED
@@ -1,23 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
$config = PhpCsFixer\Config::create()
|
4 |
-
->setRiskyAllowed(true)
|
5 |
-
->setRules([
|
6 |
-
'@PSR2' => true,
|
7 |
-
'array_syntax' => ['syntax' => 'short'],
|
8 |
-
'declare_strict_types' => false,
|
9 |
-
'concat_space' => ['spacing'=>'one'],
|
10 |
-
'php_unit_test_case_static_method_calls' => ['call_type' => 'self'],
|
11 |
-
'ordered_imports' => true,
|
12 |
-
// 'phpdoc_align' => ['align'=>'vertical'],
|
13 |
-
// 'native_function_invocation' => true,
|
14 |
-
])
|
15 |
-
->setFinder(
|
16 |
-
PhpCsFixer\Finder::create()
|
17 |
-
->in(__DIR__.'/src')
|
18 |
-
->in(__DIR__.'/tests')
|
19 |
-
->name('*.php')
|
20 |
-
)
|
21 |
-
;
|
22 |
-
|
23 |
-
return $config;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/guzzlehttp/promises/.php_cs.dist
DELETED
@@ -1,88 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
$config = PhpCsFixer\Config::create()
|
4 |
-
->setRiskyAllowed(true)
|
5 |
-
->setRules([
|
6 |
-
'@PSR2' => true,
|
7 |
-
'array_syntax' => ['syntax' => 'short'],
|
8 |
-
'binary_operator_spaces' => ['operators' => ['=>' => null]],
|
9 |
-
'blank_line_after_opening_tag' => true,
|
10 |
-
'class_attributes_separation' => ['elements' => ['method']],
|
11 |
-
'compact_nullable_typehint' => true,
|
12 |
-
'concat_space' => ['spacing' => 'one'],
|
13 |
-
'declare_equal_normalize' => ['space' => 'none'],
|
14 |
-
'declare_strict_types' => false,
|
15 |
-
'dir_constant' => true,
|
16 |
-
'final_static_access' => true,
|
17 |
-
'fully_qualified_strict_types' => true,
|
18 |
-
'function_to_constant' => true,
|
19 |
-
'function_typehint_space' => true,
|
20 |
-
'header_comment' => false,
|
21 |
-
'is_null' => ['use_yoda_style' => false],
|
22 |
-
'list_syntax' => ['syntax' => 'short'],
|
23 |
-
'lowercase_cast' => true,
|
24 |
-
'magic_method_casing' => true,
|
25 |
-
'modernize_types_casting' => true,
|
26 |
-
'multiline_comment_opening_closing' => true,
|
27 |
-
//'native_constant_invocation' => true,
|
28 |
-
'no_alias_functions' => true,
|
29 |
-
'no_alternative_syntax' => true,
|
30 |
-
'no_blank_lines_after_phpdoc' => true,
|
31 |
-
'no_empty_comment' => true,
|
32 |
-
'no_empty_phpdoc' => true,
|
33 |
-
'no_extra_blank_lines' => true,
|
34 |
-
'no_leading_import_slash' => true,
|
35 |
-
'no_leading_namespace_whitespace' => true,
|
36 |
-
'no_spaces_around_offset' => true,
|
37 |
-
'no_superfluous_phpdoc_tags' => ['allow_mixed' => true],
|
38 |
-
'no_trailing_comma_in_singleline_array' => true,
|
39 |
-
'no_unneeded_control_parentheses' => true,
|
40 |
-
'no_unset_cast' => true,
|
41 |
-
'no_unused_imports' => true,
|
42 |
-
'no_useless_else' => true,
|
43 |
-
'no_useless_return' => true,
|
44 |
-
'no_whitespace_in_blank_line' => true,
|
45 |
-
'normalize_index_brace' => true,
|
46 |
-
'ordered_imports' => true,
|
47 |
-
'php_unit_construct' => true,
|
48 |
-
'php_unit_dedicate_assert' => ['target' => 'newest'],
|
49 |
-
'php_unit_dedicate_assert_internal_type' => ['target' => 'newest'],
|
50 |
-
'php_unit_expectation' => ['target' => 'newest'],
|
51 |
-
'php_unit_mock' => ['target' => 'newest'],
|
52 |
-
'php_unit_mock_short_will_return' => true,
|
53 |
-
'php_unit_no_expectation_annotation' => ['target' => 'newest'],
|
54 |
-
'php_unit_test_annotation' => ['style' => 'prefix'],
|
55 |
-
//'php_unit_test_case_static_method_calls' => ['call_type' => 'self'],
|
56 |
-
'phpdoc_align' => ['align' => 'vertical'],
|
57 |
-
//'phpdoc_line_span' => ['method' => 'multi', 'property' => 'multi'],
|
58 |
-
'phpdoc_no_package' => true,
|
59 |
-
'phpdoc_no_useless_inheritdoc' => true,
|
60 |
-
'phpdoc_scalar' => true,
|
61 |
-
'phpdoc_separation' => true,
|
62 |
-
'phpdoc_single_line_var_spacing' => true,
|
63 |
-
'phpdoc_trim' => true,
|
64 |
-
'phpdoc_trim_consecutive_blank_line_separation' => true,
|
65 |
-
'phpdoc_types' => true,
|
66 |
-
'phpdoc_types_order' => ['null_adjustment' => 'always_last', 'sort_algorithm' => 'none'],
|
67 |
-
'phpdoc_var_without_name' => true,
|
68 |
-
'return_assignment' => true,
|
69 |
-
'short_scalar_cast' => true,
|
70 |
-
'single_trait_insert_per_statement' => true,
|
71 |
-
'standardize_not_equals' => true,
|
72 |
-
//'static_lambda' => true,
|
73 |
-
'ternary_to_null_coalescing' => true,
|
74 |
-
'trim_array_spaces' => true,
|
75 |
-
'visibility_required' => true,
|
76 |
-
'yoda_style' => false,
|
77 |
-
// 'native_function_invocation' => true,
|
78 |
-
'braces' => ['allow_single_line_closure'=>true],
|
79 |
-
])
|
80 |
-
->setFinder(
|
81 |
-
PhpCsFixer\Finder::create()
|
82 |
-
->in(__DIR__.'/src')
|
83 |
-
->in(__DIR__.'/tests')
|
84 |
-
->name('*.php')
|
85 |
-
)
|
86 |
-
;
|
87 |
-
|
88 |
-
return $config;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/guzzlehttp/promises/phpstan.neon.dist
DELETED
@@ -1,10 +0,0 @@
|
|
1 |
-
includes:
|
2 |
-
- phpstan-baseline.neon
|
3 |
-
|
4 |
-
parameters:
|
5 |
-
level: 5
|
6 |
-
paths:
|
7 |
-
- src
|
8 |
-
|
9 |
-
ignoreErrors:
|
10 |
-
- "#^Dead catch - Exception is already caught by Throwable above\\.$#"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/guzzlehttp/promises/psalm.xml
DELETED
@@ -1,15 +0,0 @@
|
|
1 |
-
<?xml version="1.0"?>
|
2 |
-
<psalm
|
3 |
-
errorLevel="4"
|
4 |
-
resolveFromConfigFile="true"
|
5 |
-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
6 |
-
xmlns="https://getpsalm.org/schema/config"
|
7 |
-
xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"
|
8 |
-
>
|
9 |
-
<projectFiles>
|
10 |
-
<directory name="src" />
|
11 |
-
<ignoreFiles>
|
12 |
-
<directory name="vendor" />
|
13 |
-
</ignoreFiles>
|
14 |
-
</projectFiles>
|
15 |
-
</psalm>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/kevinrob/guzzle-cache-middleware/.editorconfig
DELETED
@@ -1,11 +0,0 @@
|
|
1 |
-
# This is the top-most .editorconfig file; do not search in parent directories.
|
2 |
-
root = true
|
3 |
-
|
4 |
-
# All files.
|
5 |
-
[*]
|
6 |
-
end_of_line = LF
|
7 |
-
indent_style = space
|
8 |
-
indent_size = 4
|
9 |
-
charset = utf-8
|
10 |
-
trim_trailing_whitespace = true
|
11 |
-
insert_final_newline = true
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/kevinrob/guzzle-cache-middleware/.gitignore
DELETED
@@ -1,6 +0,0 @@
|
|
1 |
-
vendor/
|
2 |
-
composer.lock
|
3 |
-
composer.phar
|
4 |
-
*.iml
|
5 |
-
.idea/
|
6 |
-
coverage.xml
|
|
|
|
|
|
|
|
|
|
|
|
vendor/kevinrob/guzzle-cache-middleware/.travis.yml
DELETED
@@ -1,27 +0,0 @@
|
|
1 |
-
dist: trusty
|
2 |
-
sudo: false
|
3 |
-
language: php
|
4 |
-
php:
|
5 |
-
- 5.5
|
6 |
-
- 5.6
|
7 |
-
- 7.0
|
8 |
-
- 7.1
|
9 |
-
- 7.2
|
10 |
-
- 7.3
|
11 |
-
- 7.4
|
12 |
-
- nightly
|
13 |
-
|
14 |
-
matrix:
|
15 |
-
allow_failures:
|
16 |
-
- php: nightly
|
17 |
-
fast_finish: true
|
18 |
-
|
19 |
-
before_script:
|
20 |
-
- composer install -n
|
21 |
-
|
22 |
-
script:
|
23 |
-
- vendor/bin/phpunit
|
24 |
-
|
25 |
-
cache:
|
26 |
-
directories:
|
27 |
-
- vendor
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/kevinrob/guzzle-cache-middleware/phpunit.xml.dist
DELETED
@@ -1,31 +0,0 @@
|
|
1 |
-
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
2 |
-
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
|
3 |
-
backupGlobals="false"
|
4 |
-
colors="true"
|
5 |
-
bootstrap="./vendor/autoload.php"
|
6 |
-
>
|
7 |
-
<php>
|
8 |
-
<env name="SYMFONY_DEPRECATIONS_HELPER" value="max[self]=0" />
|
9 |
-
</php>
|
10 |
-
|
11 |
-
<testsuites>
|
12 |
-
<testsuite name="Project Test Suite">
|
13 |
-
<directory>tests</directory>
|
14 |
-
</testsuite>
|
15 |
-
</testsuites>
|
16 |
-
|
17 |
-
<filter>
|
18 |
-
<whitelist processUncoveredFilesFromWhitelist="true">
|
19 |
-
<directory suffix=".php">src</directory>
|
20 |
-
</whitelist>
|
21 |
-
</filter>
|
22 |
-
|
23 |
-
<logging>
|
24 |
-
<log type="coverage-clover" target="coverage.xml"/>
|
25 |
-
</logging>
|
26 |
-
|
27 |
-
<listeners>
|
28 |
-
<listener class="\Symfony\Bridge\PhpUnit\SymfonyTestsListener"/>
|
29 |
-
</listeners>
|
30 |
-
|
31 |
-
</phpunit>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/psr/container/.gitignore
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
composer.lock
|
2 |
-
composer.phar
|
3 |
-
/vendor/
|
|
|
|
|
|
vendor/psr/simple-cache/.editorconfig
DELETED
@@ -1,12 +0,0 @@
|
|
1 |
-
; This file is for unifying the coding style for different editors and IDEs.
|
2 |
-
; More information at http://editorconfig.org
|
3 |
-
|
4 |
-
root = true
|
5 |
-
|
6 |
-
[*]
|
7 |
-
charset = utf-8
|
8 |
-
indent_size = 4
|
9 |
-
indent_style = space
|
10 |
-
end_of_line = lf
|
11 |
-
insert_final_newline = true
|
12 |
-
trim_trailing_whitespace = true
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/rebelcode/entities/.gitattributes
DELETED
File without changes
|
vendor/rebelcode/entities/.gitignore
DELETED
@@ -1,4 +0,0 @@
|
|
1 |
-
/.idea/
|
2 |
-
/nbproject/
|
3 |
-
/test/log/
|
4 |
-
/vendor/
|
|
|
|
|
|
|
|
vendor/rebelcode/entities/phpunit.xml
DELETED
@@ -1,35 +0,0 @@
|
|
1 |
-
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
-
<phpunit
|
3 |
-
colors="true"
|
4 |
-
bootstrap="test/bootstrap.php"
|
5 |
-
>
|
6 |
-
<php>
|
7 |
-
<ini name="display_errors" value="1" />
|
8 |
-
<ini name="display_startup_errors" value="1" />
|
9 |
-
</php>
|
10 |
-
<testsuites>
|
11 |
-
<testsuite name="Unit tests">
|
12 |
-
<directory>./test/unit/</directory>
|
13 |
-
</testsuite>
|
14 |
-
<testsuite name="Functional tests">
|
15 |
-
<directory>./test/func/</directory>
|
16 |
-
</testsuite>
|
17 |
-
</testsuites>
|
18 |
-
<filter>
|
19 |
-
<whitelist processUncoveredFilesFromWhitelist="true">
|
20 |
-
<directory suffix=".php">src</directory>
|
21 |
-
</whitelist>
|
22 |
-
</filter>
|
23 |
-
<logging>
|
24 |
-
<log type="coverage-html" target="./test/coverage/html" lowUpperBound="35"
|
25 |
-
highLowerBound="80"/>
|
26 |
-
<log type="coverage-clover" target="./test/coverage/clover.xml"/>
|
27 |
-
<log type="coverage-php" target="./test/coverage/serialized"/>
|
28 |
-
<log type="coverage-text" target="php://stdout" showUncoveredFiles="false"/>
|
29 |
-
<log type="json" target="./test/log/logfile.json"/>
|
30 |
-
<log type="tap" target="./test/log/logfile.tap"/>
|
31 |
-
<log type="junit" target="./test/log/logfile.xml" logIncompleteSkipped="false"/>
|
32 |
-
<log type="testdox-html" target="./test/log/testdox.html"/>
|
33 |
-
<log type="testdox-text" target="./test/log/testdox.txt"/>
|
34 |
-
</logging>
|
35 |
-
</phpunit>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|