Version Description
- 2019-09-19 =
- Fixed invoice fields integration for wFirma/iFirma/inFakt/Fakturownia
Download this release
Release Info
Developer | wpdesk |
Plugin | Flexible Checkout Fields for WooCommerce – WooCommerce Checkout Manager |
Version | 2.1.4 |
Comparing to | |
See all releases |
Code changes from version 2.1.1 to 2.1.4
- classes/class-flexible-checkout-fields-plugin.php +40 -30
- classes/display-options.php +54 -6
- composer.lock +33 -31
- flexible-checkout-fields.php +3 -3
- readme.txt +12 -2
- vendor/autoload.php +1 -1
- vendor/composer/autoload_classmap.php +9 -0
- vendor/composer/autoload_real.php +7 -7
- vendor/composer/autoload_static.php +13 -4
- vendor/composer/installed.json +24 -22
- vendor/monolog/monolog/.php_cs +0 -59
- vendor/monolog/monolog/CHANGELOG.md +18 -0
- vendor/monolog/monolog/composer.json +1 -1
- vendor/monolog/monolog/doc/01-usage.md +0 -231
- vendor/monolog/monolog/doc/02-handlers-formatters-processors.md +0 -158
- vendor/monolog/monolog/doc/03-utilities.md +0 -15
- vendor/monolog/monolog/doc/04-extending.md +0 -76
- vendor/monolog/monolog/doc/sockets.md +0 -39
- vendor/monolog/monolog/phpunit.xml.dist +0 -19
- vendor/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php +0 -6
- vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php +0 -17
- vendor/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php +2 -2
- vendor/monolog/monolog/src/Monolog/Handler/FormattableHandlerInterface.php +39 -0
- vendor/monolog/monolog/src/Monolog/Handler/FormattableHandlerTrait.php +63 -0
- vendor/monolog/monolog/src/Monolog/Handler/GroupHandler.php +2 -1
- vendor/monolog/monolog/src/Monolog/Handler/HipChatHandler.php +2 -0
- vendor/monolog/monolog/src/Monolog/Handler/InsightOpsHandler.php +1 -1
- vendor/monolog/monolog/src/Monolog/Handler/ProcessableHandlerInterface.php +40 -0
- vendor/monolog/monolog/src/Monolog/Handler/ProcessableHandlerTrait.php +73 -0
- vendor/monolog/monolog/src/Monolog/Handler/RavenHandler.php +2 -0
- vendor/monolog/monolog/src/Monolog/Handler/SlackbotHandler.php +6 -2
- vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php +1 -0
- vendor/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php +29 -8
- vendor/monolog/monolog/src/Monolog/Handler/TestHandler.php +13 -0
- vendor/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php +2 -1
- vendor/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php +26 -20
- vendor/monolog/monolog/src/Monolog/SignalHandler.php +1 -1
- vendor/wpdesk/wp-builder/.gitignore +2 -1
- vendor/wpdesk/wp-builder/CHANGELOG.md +9 -0
- vendor/wpdesk/wp-builder/apigen.neon +5 -5
- vendor/wpdesk/wp-builder/composer.json +3 -3
- vendor/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Buildable.php +11 -0
- vendor/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Has_Plugin_Info.php +29 -0
- vendor/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Plugin_Info.php +171 -0
- vendor/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Translable.php +9 -0
- vendor/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Translatable.php +15 -0
- vendor/wpdesk/wp-wpdesk-license/CHANGELOG.md +4 -0
- vendor/wpdesk/wp-wpdesk-license/composer.json +1 -1
classes/class-flexible-checkout-fields-plugin.php
CHANGED
@@ -164,7 +164,7 @@ class Flexible_Checkout_Fields_Plugin extends \WPDesk\PluginBuilder\Plugin\Abstr
|
|
164 |
$my_account_edit_address->hooks();
|
165 |
|
166 |
$plugin = $this;
|
167 |
-
add_filter( 'flexible_checkout_fields', function() use( $plugin ) {
|
168 |
return $plugin;
|
169 |
});
|
170 |
}
|
@@ -197,7 +197,7 @@ class Flexible_Checkout_Fields_Plugin extends \WPDesk\PluginBuilder\Plugin\Abstr
|
|
197 |
* Get setting value.
|
198 |
*
|
199 |
* @param string $name Setting name.
|
200 |
-
* @param mixed
|
201 |
*
|
202 |
* @return mixed|void
|
203 |
*/
|
@@ -206,32 +206,44 @@ class Flexible_Checkout_Fields_Plugin extends \WPDesk\PluginBuilder\Plugin\Abstr
|
|
206 |
}
|
207 |
|
208 |
/**
|
209 |
-
*
|
|
|
|
|
210 |
*
|
211 |
* @param array $base Local base.
|
212 |
*
|
213 |
* @return array
|
214 |
*/
|
215 |
public function woocommerce_get_country_locale_base( $base ) {
|
|
|
|
|
216 |
foreach ( $base as $key => $field ) {
|
217 |
unset( $base[ $key ]['placeholder'] );
|
218 |
unset( $base[ $key ]['label'] );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
219 |
}
|
220 |
|
221 |
return $base;
|
222 |
}
|
223 |
|
224 |
/**
|
225 |
-
*
|
226 |
*
|
227 |
-
* @param array $locale
|
228 |
*
|
229 |
* @return array
|
230 |
*/
|
231 |
public function woocommerce_get_country_locale( $locale ) {
|
232 |
if ( is_checkout() || is_account_page() ) {
|
233 |
foreach ( $locale as $country => $fields ) {
|
234 |
-
foreach ( $fields as $field =>
|
235 |
unset( $locale[ $country ][ $field ]['priority'] );
|
236 |
unset( $locale[ $country ][ $field ]['label'] );
|
237 |
unset( $locale[ $country ][ $field ]['placeholder'] );
|
@@ -250,7 +262,7 @@ class Flexible_Checkout_Fields_Plugin extends \WPDesk\PluginBuilder\Plugin\Abstr
|
|
250 |
* @return array
|
251 |
*/
|
252 |
public function woocommerce_default_address_fields( $fields ) {
|
253 |
-
if ( is_checkout() ) {
|
254 |
foreach ( $fields as $key => $field ) {
|
255 |
unset( $fields[ $key ]['priority'] );
|
256 |
}
|
@@ -291,7 +303,7 @@ class Flexible_Checkout_Fields_Plugin extends \WPDesk\PluginBuilder\Plugin\Abstr
|
|
291 |
$this->all_sections = apply_filters( 'flexible_checkout_fields_all_sections', $all_sections );
|
292 |
}
|
293 |
|
294 |
-
function init_fields() {
|
295 |
$this->fields['text'] = array(
|
296 |
'name' => __( 'Single Line Text', 'flexible-checkout-fields' )
|
297 |
);
|
@@ -301,7 +313,7 @@ class Flexible_Checkout_Fields_Plugin extends \WPDesk\PluginBuilder\Plugin\Abstr
|
|
301 |
);
|
302 |
}
|
303 |
|
304 |
-
function pro_fields( $fields ) {
|
305 |
$add_fields = array();
|
306 |
|
307 |
$add_fields['inspirecheckbox'] = array(
|
@@ -415,7 +427,7 @@ class Flexible_Checkout_Fields_Plugin extends \WPDesk\PluginBuilder\Plugin\Abstr
|
|
415 |
return $this->get_settings_for_available_sections( $settings );
|
416 |
}
|
417 |
|
418 |
-
function woocommerce_before_checkout_form() {
|
419 |
WC()->session->set( 'checkout-fields', array() );
|
420 |
$settings = $this->get_settings();
|
421 |
$args = array( 'settings' => $settings );
|
@@ -432,7 +444,7 @@ class Flexible_Checkout_Fields_Plugin extends \WPDesk\PluginBuilder\Plugin\Abstr
|
|
432 |
* @return array
|
433 |
*/
|
434 |
private function append_other_plugins_fields_to_checkout_fields( $settings, $fields, $new, $request_type ) {
|
435 |
-
if ( $request_type
|
436 |
if ( ! empty( $fields ) && is_array( $fields ) ) {
|
437 |
foreach ( $fields as $section => $section_fields ) {
|
438 |
if ( ! empty( $section_fields ) && is_array( $section_fields ) ) {
|
@@ -484,7 +496,7 @@ class Flexible_Checkout_Fields_Plugin extends \WPDesk\PluginBuilder\Plugin\Abstr
|
|
484 |
$priority = 0;
|
485 |
foreach ( $settings as $key => $type ) {
|
486 |
|
487 |
-
if ( $key
|
488 |
if ( get_option( 'inspire_checkout_fields_' . $key, '0' ) == '0' ) {
|
489 |
continue;
|
490 |
}
|
@@ -585,10 +597,10 @@ class Flexible_Checkout_Fields_Plugin extends \WPDesk\PluginBuilder\Plugin\Abstr
|
|
585 |
|
586 |
$new = $this->append_other_plugins_fields_to_checkout_fields( $settings, $fields, $new, $request_type );
|
587 |
|
588 |
-
foreach ( $new as $type => $
|
589 |
$priority = 0;
|
590 |
-
foreach ( $
|
591 |
-
$priority
|
592 |
$new[ $type ][ $key ]['priority'] = $priority;
|
593 |
}
|
594 |
}
|
@@ -602,14 +614,13 @@ class Flexible_Checkout_Fields_Plugin extends \WPDesk\PluginBuilder\Plugin\Abstr
|
|
602 |
$new = $this->restore_default_city_validation( $new, $_POST, 'shipping' );
|
603 |
|
604 |
return $new;
|
605 |
-
}
|
606 |
-
|
607 |
-
|
608 |
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
}
|
613 |
}
|
614 |
} else {
|
615 |
return $fields;
|
@@ -660,7 +671,7 @@ class Flexible_Checkout_Fields_Plugin extends \WPDesk\PluginBuilder\Plugin\Abstr
|
|
660 |
if ( ! empty( $settings[ $request_type ] ) ) {
|
661 |
foreach ( $settings[ $request_type ] as $key => $field ) {
|
662 |
|
663 |
-
if ( $field['visible'] == 0 || $field['name']
|
664 |
if ( ! empty( $fields[ $key ] ) ) {
|
665 |
$new[ $key ] = $fields[ $key ];
|
666 |
}
|
@@ -692,7 +703,7 @@ class Flexible_Checkout_Fields_Plugin extends \WPDesk\PluginBuilder\Plugin\Abstr
|
|
692 |
}
|
693 |
|
694 |
if ( ! empty( $field['name'] ) ) {
|
695 |
-
if ( ( $field['name']
|
696 |
$new[ $key ]['class'][1] = "inspire_checkout_fields_hide";
|
697 |
}
|
698 |
}
|
@@ -743,10 +754,9 @@ class Flexible_Checkout_Fields_Plugin extends \WPDesk\PluginBuilder\Plugin\Abstr
|
|
743 |
if ( ! empty( $settings ) ) {
|
744 |
foreach ( $settings as $key => $type ) {
|
745 |
if ( $request_type == null || $request_type == $key ) {
|
|
|
746 |
foreach ( $type as $field ) {
|
747 |
-
if (
|
748 |
-
/* $field['visible'] == 0 */ /* probably temporary change ;) */ // TODO - remove in next version?
|
749 |
-
&& ( ( isset( $field['custom_field'] ) && $field['custom_field'] == 1 ) || in_array( $field['name'], array(
|
750 |
'billing_phone',
|
751 |
'billing_email'
|
752 |
) ) )
|
@@ -779,9 +789,9 @@ class Flexible_Checkout_Fields_Plugin extends \WPDesk\PluginBuilder\Plugin\Abstr
|
|
779 |
if ( $request_type == null || $request_type == $key ) {
|
780 |
foreach ( $type as $field ) {
|
781 |
if ( $field['visible'] == 0 && ( $request_type == null || strpos( $field['name'], $request_type ) === 0 )
|
782 |
-
&& ( ( empty( $field['type'] ) || ( $field['type']
|
783 |
) {
|
784 |
-
$field_name =
|
785 |
|
786 |
if ( isset( $labels[ $field_name ] ) ) {
|
787 |
|
@@ -803,7 +813,7 @@ class Flexible_Checkout_Fields_Plugin extends \WPDesk\PluginBuilder\Plugin\Abstr
|
|
803 |
|
804 |
$new[ $field_name ] = apply_filters( 'flexible_checkout_fields_admin_labels', $new[ $field_name ], $field, $field_name );
|
805 |
|
806 |
-
if ( $field_name
|
807 |
$new[ $field_name ]['type'] = 'select';
|
808 |
}
|
809 |
|
164 |
$my_account_edit_address->hooks();
|
165 |
|
166 |
$plugin = $this;
|
167 |
+
add_filter( 'flexible_checkout_fields', static function() use( $plugin ) {
|
168 |
return $plugin;
|
169 |
});
|
170 |
}
|
197 |
* Get setting value.
|
198 |
*
|
199 |
* @param string $name Setting name.
|
200 |
+
* @param mixed $default Default setting value.
|
201 |
*
|
202 |
* @return mixed|void
|
203 |
*/
|
206 |
}
|
207 |
|
208 |
/**
|
209 |
+
* Change params used by js locale woocommerce/assets/js/frontend/address-i18n.js so it would not overwrite backend settings.
|
210 |
+
*
|
211 |
+
* This is a locale for default country.
|
212 |
*
|
213 |
* @param array $base Local base.
|
214 |
*
|
215 |
* @return array
|
216 |
*/
|
217 |
public function woocommerce_get_country_locale_base( $base ) {
|
218 |
+
$settings = $this->get_settings();
|
219 |
+
|
220 |
foreach ( $base as $key => $field ) {
|
221 |
unset( $base[ $key ]['placeholder'] );
|
222 |
unset( $base[ $key ]['label'] );
|
223 |
+
|
224 |
+
// field is force-required for given locale when FCF have shipping or billing field required
|
225 |
+
$shipping_key = 'shipping_' . $key;
|
226 |
+
$billing_key = 'billing_' . $key;
|
227 |
+
if ( ( isset( $settings['shipping'][ $shipping_key ] ) && $settings['shipping'][ $shipping_key ]['required'] )
|
228 |
+
|| ( isset( $settings['billing'][ $billing_key ] ) && $settings['billing'][ $billing_key ]['required'] ) ) {
|
229 |
+
$base [ $key ]['required'] = true;
|
230 |
+
}
|
231 |
}
|
232 |
|
233 |
return $base;
|
234 |
}
|
235 |
|
236 |
/**
|
237 |
+
* Change params used by js locale woocommerce/assets/js/frontend/address-i18n.js so it would not overwrite backend settings
|
238 |
*
|
239 |
+
* @param array $locale Table of field settings per locale
|
240 |
*
|
241 |
* @return array
|
242 |
*/
|
243 |
public function woocommerce_get_country_locale( $locale ) {
|
244 |
if ( is_checkout() || is_account_page() ) {
|
245 |
foreach ( $locale as $country => $fields ) {
|
246 |
+
foreach ( $fields as $field => &$settings ) {
|
247 |
unset( $locale[ $country ][ $field ]['priority'] );
|
248 |
unset( $locale[ $country ][ $field ]['label'] );
|
249 |
unset( $locale[ $country ][ $field ]['placeholder'] );
|
262 |
* @return array
|
263 |
*/
|
264 |
public function woocommerce_default_address_fields( $fields ) {
|
265 |
+
if ( is_checkout() || is_account_page() ) {
|
266 |
foreach ( $fields as $key => $field ) {
|
267 |
unset( $fields[ $key ]['priority'] );
|
268 |
}
|
303 |
$this->all_sections = apply_filters( 'flexible_checkout_fields_all_sections', $all_sections );
|
304 |
}
|
305 |
|
306 |
+
private function init_fields() {
|
307 |
$this->fields['text'] = array(
|
308 |
'name' => __( 'Single Line Text', 'flexible-checkout-fields' )
|
309 |
);
|
313 |
);
|
314 |
}
|
315 |
|
316 |
+
private function pro_fields( $fields ) {
|
317 |
$add_fields = array();
|
318 |
|
319 |
$add_fields['inspirecheckbox'] = array(
|
427 |
return $this->get_settings_for_available_sections( $settings );
|
428 |
}
|
429 |
|
430 |
+
public function woocommerce_before_checkout_form() {
|
431 |
WC()->session->set( 'checkout-fields', array() );
|
432 |
$settings = $this->get_settings();
|
433 |
$args = array( 'settings' => $settings );
|
444 |
* @return array
|
445 |
*/
|
446 |
private function append_other_plugins_fields_to_checkout_fields( $settings, $fields, $new, $request_type ) {
|
447 |
+
if ( $request_type === null ) {
|
448 |
if ( ! empty( $fields ) && is_array( $fields ) ) {
|
449 |
foreach ( $fields as $section => $section_fields ) {
|
450 |
if ( ! empty( $section_fields ) && is_array( $section_fields ) ) {
|
496 |
$priority = 0;
|
497 |
foreach ( $settings as $key => $type ) {
|
498 |
|
499 |
+
if ( $key !== 'billing' && $key !== 'shipping' && $key !== 'order' ) {
|
500 |
if ( get_option( 'inspire_checkout_fields_' . $key, '0' ) == '0' ) {
|
501 |
continue;
|
502 |
}
|
597 |
|
598 |
$new = $this->append_other_plugins_fields_to_checkout_fields( $settings, $fields, $new, $request_type );
|
599 |
|
600 |
+
foreach ( $new as $type => $new_fields ) {
|
601 |
$priority = 0;
|
602 |
+
foreach ( $new_fields as $key => $field ) {
|
603 |
+
$priority += 10;
|
604 |
$new[ $type ][ $key ]['priority'] = $priority;
|
605 |
}
|
606 |
}
|
614 |
$new = $this->restore_default_city_validation( $new, $_POST, 'shipping' );
|
615 |
|
616 |
return $new;
|
617 |
+
}
|
618 |
+
if ( isset( $new[ $request_type ] ) ) {
|
619 |
+
$new = $this->restore_default_city_validation( $new, $_POST, $request_type );
|
620 |
|
621 |
+
return $new[ $request_type ];
|
622 |
+
} else {
|
623 |
+
return array();
|
|
|
624 |
}
|
625 |
} else {
|
626 |
return $fields;
|
671 |
if ( ! empty( $settings[ $request_type ] ) ) {
|
672 |
foreach ( $settings[ $request_type ] as $key => $field ) {
|
673 |
|
674 |
+
if ( $field['visible'] == 0 || $field['name'] === 'billing_country' || $field['name'] === 'shipping_country' || ( isset( $_GET['page'] ) && $_GET['page'] === 'inspire_checkout_fields_settings' && $field['visible'] == 1 ) ) {
|
675 |
if ( ! empty( $fields[ $key ] ) ) {
|
676 |
$new[ $key ] = $fields[ $key ];
|
677 |
}
|
703 |
}
|
704 |
|
705 |
if ( ! empty( $field['name'] ) ) {
|
706 |
+
if ( ( $field['name'] === 'billing_country' || $field['name'] === 'shipping_country' ) && $field['visible'] == 1 ) {
|
707 |
$new[ $key ]['class'][1] = "inspire_checkout_fields_hide";
|
708 |
}
|
709 |
}
|
754 |
if ( ! empty( $settings ) ) {
|
755 |
foreach ( $settings as $key => $type ) {
|
756 |
if ( $request_type == null || $request_type == $key ) {
|
757 |
+
$return = [];
|
758 |
foreach ( $type as $field ) {
|
759 |
+
if ( ( ( isset( $field['custom_field'] ) && $field['custom_field'] == 1 ) || in_array( $field['name'], array(
|
|
|
|
|
760 |
'billing_phone',
|
761 |
'billing_email'
|
762 |
) ) )
|
789 |
if ( $request_type == null || $request_type == $key ) {
|
790 |
foreach ( $type as $field ) {
|
791 |
if ( $field['visible'] == 0 && ( $request_type == null || strpos( $field['name'], $request_type ) === 0 )
|
792 |
+
&& ( ( empty( $field['type'] ) || ( $field['type'] !== 'heading' && $field['type'] !== 'info' && $field['type'] !== 'file' ) ) )
|
793 |
) {
|
794 |
+
$field_name = $this->replace_only_first( $request_type . '_', '', $field['name'] );
|
795 |
|
796 |
if ( isset( $labels[ $field_name ] ) ) {
|
797 |
|
813 |
|
814 |
$new[ $field_name ] = apply_filters( 'flexible_checkout_fields_admin_labels', $new[ $field_name ], $field, $field_name );
|
815 |
|
816 |
+
if ( $field_name === 'country' ) {
|
817 |
$new[ $field_name ]['type'] = 'select';
|
818 |
}
|
819 |
|
classes/display-options.php
CHANGED
@@ -137,7 +137,7 @@ class Flexible_Checkout_Fields_Disaplay_Options {
|
|
137 |
|
138 |
$val .= $meta_value;
|
139 |
$address[$field['name']] = $val;
|
140 |
-
$address[
|
141 |
}
|
142 |
}
|
143 |
return $address;
|
@@ -169,7 +169,7 @@ class Flexible_Checkout_Fields_Disaplay_Options {
|
|
169 |
if ( $format != '' ) {
|
170 |
$format .= "\n";
|
171 |
}
|
172 |
-
$format .= '{' .
|
173 |
}
|
174 |
return $format;
|
175 |
}
|
@@ -326,7 +326,7 @@ class Flexible_Checkout_Fields_Disaplay_Options {
|
|
326 |
|
327 |
foreach ( $cf_fields as $field_key => $field ) {
|
328 |
$val = wpdesk_get_order_meta( $order, '_' . $field_key, true );
|
329 |
-
if ( isset( $field['custom_field'] ) && $field['custom_field'] == '1'
|
330 |
|
331 |
$val = strip_tags( wpdesk__( $field['label'], 'flexible-checkout-fields' ) ) . ': ';
|
332 |
|
@@ -340,30 +340,78 @@ class Flexible_Checkout_Fields_Disaplay_Options {
|
|
340 |
$val .= $meta_value;
|
341 |
}
|
342 |
|
343 |
-
$val = $this->flexible_invoices_ask_field_integration($val, $field_key, $fields);
|
344 |
|
345 |
$fields[$field['name']] = $val;
|
346 |
-
$fields[
|
347 |
}
|
348 |
return $fields;
|
349 |
|
350 |
}
|
351 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
352 |
/**
|
353 |
* Return value for invoice ask field prepared by FI plugin. If can't then fallback.
|
354 |
*
|
355 |
* @param string $val Prepared by FCF field value.
|
|
|
356 |
* @param string $field_key Field key that is currently processed. Needed to check if val should be replaced.
|
357 |
* @param array $fields Prepared by WC field values
|
358 |
*
|
359 |
* @return string New field value
|
360 |
*/
|
361 |
-
private function flexible_invoices_ask_field_integration($val, $field_key, $fields) {
|
362 |
if ( apply_filters( 'flexible_checkout_fields_invoices_integration_enabled', true ) ) {
|
|
|
|
|
363 |
if ( $field_key === 'invoice_ask' && ! empty( $fields['invoice_ask_field'] ) ) {
|
364 |
return $fields['invoice_ask_field'];
|
365 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
366 |
}
|
|
|
367 |
return $val;
|
368 |
}
|
369 |
|
137 |
|
138 |
$val .= $meta_value;
|
139 |
$address[$field['name']] = $val;
|
140 |
+
$address[$this->replace_only_first( $address_type . '_', '', $field['name'] )] = $val;
|
141 |
}
|
142 |
}
|
143 |
return $address;
|
169 |
if ( $format != '' ) {
|
170 |
$format .= "\n";
|
171 |
}
|
172 |
+
$format .= '{' . $this->replace_only_first( $this->current_address_type . '_', '', $field['name'] . '}' );
|
173 |
}
|
174 |
return $format;
|
175 |
}
|
326 |
|
327 |
foreach ( $cf_fields as $field_key => $field ) {
|
328 |
$val = wpdesk_get_order_meta( $order, '_' . $field_key, true );
|
329 |
+
if ( (isset( $field['custom_field'] ) && $field['custom_field'] == '1')) {
|
330 |
|
331 |
$val = strip_tags( wpdesk__( $field['label'], 'flexible-checkout-fields' ) ) . ': ';
|
332 |
|
340 |
$val .= $meta_value;
|
341 |
}
|
342 |
|
343 |
+
$val = $this->flexible_invoices_ask_field_integration($val, $field, $field_key, $fields);
|
344 |
|
345 |
$fields[$field['name']] = $val;
|
346 |
+
$fields[$this->replace_only_first( $address_type . '_', '', $field['name'] )] = $val;
|
347 |
}
|
348 |
return $fields;
|
349 |
|
350 |
}
|
351 |
|
352 |
+
/**
|
353 |
+
* Similar to str_replace but replaces only the first occurrence.
|
354 |
+
*
|
355 |
+
* @param string $needle search for it.
|
356 |
+
* @param string $replace change the needle to this value.
|
357 |
+
* @param string $haystack here we are searching
|
358 |
+
*
|
359 |
+
* @return string
|
360 |
+
*/
|
361 |
+
private function replace_only_first($needle, $replace, $haystack) {
|
362 |
+
$pos = strpos($haystack, $needle);
|
363 |
+
if ($pos !== false) {
|
364 |
+
return substr_replace($haystack, $replace, $pos, strlen($needle));
|
365 |
+
}
|
366 |
+
return $haystack;
|
367 |
+
}
|
368 |
+
|
369 |
/**
|
370 |
* Return value for invoice ask field prepared by FI plugin. If can't then fallback.
|
371 |
*
|
372 |
* @param string $val Prepared by FCF field value.
|
373 |
+
* @param array $field FCF field def.
|
374 |
* @param string $field_key Field key that is currently processed. Needed to check if val should be replaced.
|
375 |
* @param array $fields Prepared by WC field values
|
376 |
*
|
377 |
* @return string New field value
|
378 |
*/
|
379 |
+
private function flexible_invoices_ask_field_integration( $val, $field, $field_key, $fields ) {
|
380 |
if ( apply_filters( 'flexible_checkout_fields_invoices_integration_enabled', true ) ) {
|
381 |
+
|
382 |
+
// FI ask field integration
|
383 |
if ( $field_key === 'invoice_ask' && ! empty( $fields['invoice_ask_field'] ) ) {
|
384 |
return $fields['invoice_ask_field'];
|
385 |
}
|
386 |
+
|
387 |
+
// wFirma/Fakturownia/iFirma/inFakt ask field integration
|
388 |
+
$supported_ask_fields = array(
|
389 |
+
'billing_faktura',
|
390 |
+
'billing_invoice',
|
391 |
+
'billing_rachunek'
|
392 |
+
);
|
393 |
+
if ( in_array( $field_key, $supported_ask_fields, true ) ) {
|
394 |
+
$wc_meta_key_definitions = apply_filters( 'woocommerce_customer_meta_fields', [] );
|
395 |
+
|
396 |
+
$label = strip_tags( wpdesk__( $field['label'], 'flexible-checkout-fields' ) );
|
397 |
+
|
398 |
+
// original plugin is probably(?) disabled if the field is not accessible
|
399 |
+
if ( isset( $wc_meta_key_definitions[ $this->current_address_type ]['fields'][ $field_key ] ) ) {
|
400 |
+
$wc_field_def = $wc_meta_key_definitions[ $this->current_address_type ]['fields'][ $field_key ];
|
401 |
+
|
402 |
+
// if field exists and is defined as select we can use this data. If not then better do not touch as it's probably optional checkbox
|
403 |
+
if ( isset( $wc_field_def['options'] ) ) {
|
404 |
+
$select_options = $wc_meta_key_definitions[ $this->current_address_type ]['fields'][ $field_key ]['options'];
|
405 |
+
$option_val = $select_options[ $val ];
|
406 |
+
|
407 |
+
return $label . ': ' . $option_val;
|
408 |
+
} elseif ( (int) $val === 1 ) {
|
409 |
+
return $label;
|
410 |
+
}
|
411 |
+
}
|
412 |
+
}
|
413 |
}
|
414 |
+
|
415 |
return $val;
|
416 |
}
|
417 |
|
composer.lock
CHANGED
@@ -8,16 +8,16 @@
|
|
8 |
"packages": [
|
9 |
{
|
10 |
"name": "monolog/monolog",
|
11 |
-
"version": "1.
|
12 |
"source": {
|
13 |
"type": "git",
|
14 |
"url": "https://github.com/Seldaek/monolog.git",
|
15 |
-
"reference": "
|
16 |
},
|
17 |
"dist": {
|
18 |
"type": "zip",
|
19 |
-
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/
|
20 |
-
"reference": "
|
21 |
"shasum": ""
|
22 |
},
|
23 |
"require": {
|
@@ -82,7 +82,7 @@
|
|
82 |
"logging",
|
83 |
"psr-3"
|
84 |
],
|
85 |
-
"time": "
|
86 |
},
|
87 |
{
|
88 |
"name": "psr/log",
|
@@ -206,21 +206,20 @@
|
|
206 |
},
|
207 |
{
|
208 |
"name": "wpdesk/wp-builder",
|
209 |
-
"version": "1.2
|
210 |
"source": {
|
211 |
"type": "git",
|
212 |
"url": "https://gitlab.com/wpdesk/wp-builder.git",
|
213 |
-
"reference": "
|
214 |
},
|
215 |
"dist": {
|
216 |
"type": "zip",
|
217 |
-
"url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-builder/repository/archive.zip?sha=
|
218 |
-
"reference": "
|
219 |
"shasum": ""
|
220 |
},
|
221 |
"require": {
|
222 |
-
"php": ">=5.5"
|
223 |
-
"wpdesk/wp-basic-requirements": "^2.0"
|
224 |
},
|
225 |
"require-dev": {
|
226 |
"10up/wp_mock": "*",
|
@@ -234,7 +233,10 @@
|
|
234 |
"autoload": {
|
235 |
"psr-4": {
|
236 |
"WPDesk\\PluginBuilder\\": "src/"
|
237 |
-
}
|
|
|
|
|
|
|
238 |
},
|
239 |
"notification-url": "https://packagist.org/downloads/",
|
240 |
"authors": [
|
@@ -243,7 +245,7 @@
|
|
243 |
"email": "krzysiek@wpdesk.pl"
|
244 |
}
|
245 |
],
|
246 |
-
"time": "2019-
|
247 |
},
|
248 |
{
|
249 |
"name": "wpdesk/wp-class-loader",
|
@@ -473,23 +475,23 @@
|
|
473 |
},
|
474 |
{
|
475 |
"name": "wpdesk/wp-wpdesk-license",
|
476 |
-
"version": "2.
|
477 |
"source": {
|
478 |
"type": "git",
|
479 |
"url": "https://gitlab.com/wpdesk/wp-wpdesk-license.git",
|
480 |
-
"reference": "
|
481 |
},
|
482 |
"dist": {
|
483 |
"type": "zip",
|
484 |
-
"url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-wpdesk-license/repository/archive.zip?sha=
|
485 |
-
"reference": "
|
486 |
"shasum": ""
|
487 |
},
|
488 |
"require": {
|
489 |
"ext-curl": "*",
|
490 |
"ext-json": "*",
|
491 |
"php": ">=5.6",
|
492 |
-
"wpdesk/wp-
|
493 |
"wpdesk/wp-notice": "^3.0"
|
494 |
},
|
495 |
"require-dev": {
|
@@ -515,7 +517,7 @@
|
|
515 |
"email": "krzysiek@wpdesk.pl"
|
516 |
}
|
517 |
],
|
518 |
-
"time": "2019-
|
519 |
},
|
520 |
{
|
521 |
"name": "wpdesk/wp-wpdesk-tracker",
|
@@ -1110,8 +1112,8 @@
|
|
1110 |
"authors": [
|
1111 |
{
|
1112 |
"name": "Sebastian Bergmann",
|
1113 |
-
"
|
1114 |
-
"
|
1115 |
}
|
1116 |
],
|
1117 |
"description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
|
@@ -1158,8 +1160,8 @@
|
|
1158 |
"authors": [
|
1159 |
{
|
1160 |
"name": "Sebastian Bergmann",
|
1161 |
-
"
|
1162 |
-
"
|
1163 |
}
|
1164 |
],
|
1165 |
"description": "FilterIterator implementation that filters files based on a list of suffixes.",
|
@@ -1200,8 +1202,8 @@
|
|
1200 |
"authors": [
|
1201 |
{
|
1202 |
"name": "Sebastian Bergmann",
|
1203 |
-
"
|
1204 |
-
"
|
1205 |
}
|
1206 |
],
|
1207 |
"description": "Simple template engine.",
|
@@ -1249,8 +1251,8 @@
|
|
1249 |
"authors": [
|
1250 |
{
|
1251 |
"name": "Sebastian Bergmann",
|
1252 |
-
"
|
1253 |
-
"
|
1254 |
}
|
1255 |
],
|
1256 |
"description": "Utility class for timing",
|
@@ -1378,8 +1380,8 @@
|
|
1378 |
"authors": [
|
1379 |
{
|
1380 |
"name": "Sebastian Bergmann",
|
1381 |
-
"
|
1382 |
-
"
|
1383 |
}
|
1384 |
],
|
1385 |
"description": "The PHP Unit Testing framework.",
|
@@ -1956,8 +1958,8 @@
|
|
1956 |
"authors": [
|
1957 |
{
|
1958 |
"name": "Sebastian Bergmann",
|
1959 |
-
"
|
1960 |
-
"
|
1961 |
}
|
1962 |
],
|
1963 |
"description": "Library that helps with managing the version number of Git-hosted PHP projects",
|
8 |
"packages": [
|
9 |
{
|
10 |
"name": "monolog/monolog",
|
11 |
+
"version": "1.25.1",
|
12 |
"source": {
|
13 |
"type": "git",
|
14 |
"url": "https://github.com/Seldaek/monolog.git",
|
15 |
+
"reference": "70e65a5470a42cfec1a7da00d30edb6e617e8dcf"
|
16 |
},
|
17 |
"dist": {
|
18 |
"type": "zip",
|
19 |
+
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/70e65a5470a42cfec1a7da00d30edb6e617e8dcf",
|
20 |
+
"reference": "70e65a5470a42cfec1a7da00d30edb6e617e8dcf",
|
21 |
"shasum": ""
|
22 |
},
|
23 |
"require": {
|
82 |
"logging",
|
83 |
"psr-3"
|
84 |
],
|
85 |
+
"time": "2019-09-06T13:49:17+00:00"
|
86 |
},
|
87 |
{
|
88 |
"name": "psr/log",
|
206 |
},
|
207 |
{
|
208 |
"name": "wpdesk/wp-builder",
|
209 |
+
"version": "1.3.2",
|
210 |
"source": {
|
211 |
"type": "git",
|
212 |
"url": "https://gitlab.com/wpdesk/wp-builder.git",
|
213 |
+
"reference": "455dd537c65ab474b2223320d295834c55b8925c"
|
214 |
},
|
215 |
"dist": {
|
216 |
"type": "zip",
|
217 |
+
"url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-builder/repository/archive.zip?sha=455dd537c65ab474b2223320d295834c55b8925c",
|
218 |
+
"reference": "455dd537c65ab474b2223320d295834c55b8925c",
|
219 |
"shasum": ""
|
220 |
},
|
221 |
"require": {
|
222 |
+
"php": ">=5.5"
|
|
|
223 |
},
|
224 |
"require-dev": {
|
225 |
"10up/wp_mock": "*",
|
233 |
"autoload": {
|
234 |
"psr-4": {
|
235 |
"WPDesk\\PluginBuilder\\": "src/"
|
236 |
+
},
|
237 |
+
"classmap": [
|
238 |
+
"src/Plugin/WithoutNamespace"
|
239 |
+
]
|
240 |
},
|
241 |
"notification-url": "https://packagist.org/downloads/",
|
242 |
"authors": [
|
245 |
"email": "krzysiek@wpdesk.pl"
|
246 |
}
|
247 |
],
|
248 |
+
"time": "2019-09-18T14:51:51+00:00"
|
249 |
},
|
250 |
{
|
251 |
"name": "wpdesk/wp-class-loader",
|
475 |
},
|
476 |
{
|
477 |
"name": "wpdesk/wp-wpdesk-license",
|
478 |
+
"version": "2.4",
|
479 |
"source": {
|
480 |
"type": "git",
|
481 |
"url": "https://gitlab.com/wpdesk/wp-wpdesk-license.git",
|
482 |
+
"reference": "992778321025e8f2cb4d85c83150cc757cfa619c"
|
483 |
},
|
484 |
"dist": {
|
485 |
"type": "zip",
|
486 |
+
"url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-wpdesk-license/repository/archive.zip?sha=992778321025e8f2cb4d85c83150cc757cfa619c",
|
487 |
+
"reference": "992778321025e8f2cb4d85c83150cc757cfa619c",
|
488 |
"shasum": ""
|
489 |
},
|
490 |
"require": {
|
491 |
"ext-curl": "*",
|
492 |
"ext-json": "*",
|
493 |
"php": ">=5.6",
|
494 |
+
"wpdesk/wp-builder": "^1.3.1",
|
495 |
"wpdesk/wp-notice": "^3.0"
|
496 |
},
|
497 |
"require-dev": {
|
517 |
"email": "krzysiek@wpdesk.pl"
|
518 |
}
|
519 |
],
|
520 |
+
"time": "2019-09-18T14:35:26+00:00"
|
521 |
},
|
522 |
{
|
523 |
"name": "wpdesk/wp-wpdesk-tracker",
|
1112 |
"authors": [
|
1113 |
{
|
1114 |
"name": "Sebastian Bergmann",
|
1115 |
+
"email": "sb@sebastian-bergmann.de",
|
1116 |
+
"role": "lead"
|
1117 |
}
|
1118 |
],
|
1119 |
"description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
|
1160 |
"authors": [
|
1161 |
{
|
1162 |
"name": "Sebastian Bergmann",
|
1163 |
+
"email": "sb@sebastian-bergmann.de",
|
1164 |
+
"role": "lead"
|
1165 |
}
|
1166 |
],
|
1167 |
"description": "FilterIterator implementation that filters files based on a list of suffixes.",
|
1202 |
"authors": [
|
1203 |
{
|
1204 |
"name": "Sebastian Bergmann",
|
1205 |
+
"email": "sebastian@phpunit.de",
|
1206 |
+
"role": "lead"
|
1207 |
}
|
1208 |
],
|
1209 |
"description": "Simple template engine.",
|
1251 |
"authors": [
|
1252 |
{
|
1253 |
"name": "Sebastian Bergmann",
|
1254 |
+
"email": "sb@sebastian-bergmann.de",
|
1255 |
+
"role": "lead"
|
1256 |
}
|
1257 |
],
|
1258 |
"description": "Utility class for timing",
|
1380 |
"authors": [
|
1381 |
{
|
1382 |
"name": "Sebastian Bergmann",
|
1383 |
+
"email": "sebastian@phpunit.de",
|
1384 |
+
"role": "lead"
|
1385 |
}
|
1386 |
],
|
1387 |
"description": "The PHP Unit Testing framework.",
|
1958 |
"authors": [
|
1959 |
{
|
1960 |
"name": "Sebastian Bergmann",
|
1961 |
+
"email": "sebastian@phpunit.de",
|
1962 |
+
"role": "lead"
|
1963 |
}
|
1964 |
],
|
1965 |
"description": "Library that helps with managing the version number of Git-hosted PHP projects",
|
flexible-checkout-fields.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Flexible Checkout Fields
|
4 |
Plugin URI: https://www.wpdesk.net/products/flexible-checkout-fields-pro-woocommerce/
|
5 |
Description: Manage your WooCommerce checkout fields. Change order, labels, placeholders and add new fields.
|
6 |
-
Version: 2.1.
|
7 |
Author: WP Desk
|
8 |
Author URI: https://www.wpdesk.net/
|
9 |
Text Domain: flexible-checkout-fields
|
@@ -37,8 +37,8 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
37 |
|
38 |
|
39 |
/* THESE TWO VARIABLES CAN BE CHANGED AUTOMATICALLY */
|
40 |
-
$plugin_version = '2.1.
|
41 |
-
$plugin_release_timestamp = '2019-
|
42 |
|
43 |
define( 'FLEXIBLE_CHECKOUT_FIELDS_VERSION', $plugin_version );
|
44 |
|
3 |
Plugin Name: Flexible Checkout Fields
|
4 |
Plugin URI: https://www.wpdesk.net/products/flexible-checkout-fields-pro-woocommerce/
|
5 |
Description: Manage your WooCommerce checkout fields. Change order, labels, placeholders and add new fields.
|
6 |
+
Version: 2.1.4
|
7 |
Author: WP Desk
|
8 |
Author URI: https://www.wpdesk.net/
|
9 |
Text Domain: flexible-checkout-fields
|
37 |
|
38 |
|
39 |
/* THESE TWO VARIABLES CAN BE CHANGED AUTOMATICALLY */
|
40 |
+
$plugin_version = '2.1.4';
|
41 |
+
$plugin_release_timestamp = '2019-09-19 15:29';
|
42 |
|
43 |
define( 'FLEXIBLE_CHECKOUT_FIELDS_VERSION', $plugin_version );
|
44 |
|
readme.txt
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
=== Flexible Checkout Fields for WooCommerce ===
|
2 |
-
Contributors: wpdesk
|
3 |
Donate link: https://www.wpdesk.net/flexible-checkout-fields-woocommerce/
|
4 |
Tags: woocommerce checkout fields, woocommerce custom fields, woocommerce checkout manager, woocommerce checkout editor, woocommerce fields manager, woocommerce fields editor, woocommerce custom checkout fields, woocommerce checkout options, woocommerce checkout pro, woocommerce custom sections, woocommerce file upload
|
5 |
Requires at least: 4.5
|
6 |
Tested up to: 5.2.0
|
7 |
-
Stable tag: 2.1.
|
8 |
Requires PHP: 5.6
|
9 |
License: GPLv3 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
@@ -188,6 +188,16 @@ If you are upgrading from the old WooCommerce Checkout Fields version (1.1, wooc
|
|
188 |
|
189 |
== Changelog ==
|
190 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
191 |
= 2.1.1 - 2019-08-29 =
|
192 |
* Fixed warning "Illegal string offset" when shipment is disabled
|
193 |
|
1 |
=== Flexible Checkout Fields for WooCommerce ===
|
2 |
+
Contributors: wpdesk,dyszczo,grola,potreb
|
3 |
Donate link: https://www.wpdesk.net/flexible-checkout-fields-woocommerce/
|
4 |
Tags: woocommerce checkout fields, woocommerce custom fields, woocommerce checkout manager, woocommerce checkout editor, woocommerce fields manager, woocommerce fields editor, woocommerce custom checkout fields, woocommerce checkout options, woocommerce checkout pro, woocommerce custom sections, woocommerce file upload
|
5 |
Requires at least: 4.5
|
6 |
Tested up to: 5.2.0
|
7 |
+
Stable tag: 2.1.4
|
8 |
Requires PHP: 5.6
|
9 |
License: GPLv3 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
188 |
|
189 |
== Changelog ==
|
190 |
|
191 |
+
= 2.1.4 - 2019-09-19 =
|
192 |
+
* Fixed invoice fields integration for wFirma/iFirma/inFakt/Fakturownia
|
193 |
+
|
194 |
+
= 2.1.3 - 2019-09-09 =
|
195 |
+
* Fixed display of fields that contains name 'billing'
|
196 |
+
|
197 |
+
= 2.1.2 - 2019-09-04 =
|
198 |
+
* Fixed reordering fields in account address page
|
199 |
+
* Fixed set require for WC predefined fields
|
200 |
+
|
201 |
= 2.1.1 - 2019-08-29 =
|
202 |
* Fixed warning "Illegal string offset" when shipment is disabled
|
203 |
|
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 ComposerAutoloaderInitb07d7b9a5825760e89d410a7aecd2a94::getLoader();
|
vendor/composer/autoload_classmap.php
CHANGED
@@ -55,6 +55,8 @@ return array(
|
|
55 |
'Monolog\\Handler\\FirePHPHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php',
|
56 |
'Monolog\\Handler\\FleepHookHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php',
|
57 |
'Monolog\\Handler\\FlowdockHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php',
|
|
|
|
|
58 |
'Monolog\\Handler\\GelfHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/GelfHandler.php',
|
59 |
'Monolog\\Handler\\GroupHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/GroupHandler.php',
|
60 |
'Monolog\\Handler\\HandlerInterface' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/HandlerInterface.php',
|
@@ -72,6 +74,8 @@ return array(
|
|
72 |
'Monolog\\Handler\\NewRelicHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php',
|
73 |
'Monolog\\Handler\\NullHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/NullHandler.php',
|
74 |
'Monolog\\Handler\\PHPConsoleHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php',
|
|
|
|
|
75 |
'Monolog\\Handler\\PsrHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/PsrHandler.php',
|
76 |
'Monolog\\Handler\\PushoverHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/PushoverHandler.php',
|
77 |
'Monolog\\Handler\\RavenHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/RavenHandler.php',
|
@@ -173,8 +177,10 @@ return array(
|
|
173 |
'WPDesk_API_MENU' => $vendorDir . '/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-menu.php',
|
174 |
'WPDesk_API_Manager_With_Update_Flag' => $vendorDir . '/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager.php',
|
175 |
'WPDesk_API_Password_Management' => $vendorDir . '/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-passwords.php',
|
|
|
176 |
'WPDesk_Conflict_Info' => $vendorDir . '/wpdesk/wp-plugin-flow/src/Compatibility/Conflict_Info.php',
|
177 |
'WPDesk_Flexible_Checkout_Fields_Tracker' => $baseDir . '/classes/tracker.php',
|
|
|
178 |
'WPDesk_Logger' => $vendorDir . '/wpdesk/wp-logs/src/deprecated/wpdesk-logger.php',
|
179 |
'WPDesk_Logger_Factory' => $vendorDir . '/wpdesk/wp-logs/src/deprecated/wpdesk-logger-factory.php',
|
180 |
'WPDesk_Plugin_Build_Flow' => $vendorDir . '/wpdesk/wp-plugin-flow/src/Build_Flow/Plugin_Build_Flow.php',
|
@@ -185,6 +191,7 @@ return array(
|
|
185 |
'WPDesk_Plugin_Disabler' => $vendorDir . '/wpdesk/wp-plugin-flow/src/Compatibility/Plugin_Disabler.php',
|
186 |
'WPDesk_Plugin_Disabler_By_File' => $vendorDir . '/wpdesk/wp-plugin-flow/src/Compatibility/Plugin_Disabler_By_File.php',
|
187 |
'WPDesk_Plugin_Disabler_Variable' => $vendorDir . '/wpdesk/wp-plugin-flow/src/Compatibility/Plugin_Disabler_Variable.php',
|
|
|
188 |
'WPDesk_Plugin_Init_Flow' => $vendorDir . '/wpdesk/wp-plugin-flow/src/Init_Flow/Plugin_Init_Flow.php',
|
189 |
'WPDesk_Plugin_Init_Flow_Factory' => $vendorDir . '/wpdesk/wp-plugin-flow/src/Init_Flow/Plugin_Init_Flow_Factory.php',
|
190 |
'WPDesk_Plugin_Init_Flow_Plugins_Loaded' => $vendorDir . '/wpdesk/wp-plugin-flow/src/Init_Flow/Plugin_Init_Flow_Plugins_Loaded.php',
|
@@ -219,6 +226,8 @@ return array(
|
|
219 |
'WPDesk_Tracker_Sender_Exception_WpError' => $vendorDir . '/wpdesk/wp-wpdesk-tracker/src/sender/Exception/class-wpdesk-tracker-sender-exception-wperror.php',
|
220 |
'WPDesk_Tracker_Sender_Logged' => $vendorDir . '/wpdesk/wp-wpdesk-tracker/src/sender/class-wpdesk-tracker-sender-logged.php',
|
221 |
'WPDesk_Tracker_Sender_Wordpress_To_WPDesk' => $vendorDir . '/wpdesk/wp-wpdesk-tracker/src/sender/class-wpdesk-tracker-sender-wordpress-to-wpdesk.php',
|
|
|
|
|
222 |
'WPDesk_Update_API_Check' => $vendorDir . '/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-plugin-update.php',
|
223 |
'WPDesk_Wordpress_Class_Loader' => $vendorDir . '/wpdesk/wp-class-loader/src/Wordpress_Class_Loader.php',
|
224 |
);
|
55 |
'Monolog\\Handler\\FirePHPHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php',
|
56 |
'Monolog\\Handler\\FleepHookHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php',
|
57 |
'Monolog\\Handler\\FlowdockHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php',
|
58 |
+
'Monolog\\Handler\\FormattableHandlerInterface' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FormattableHandlerInterface.php',
|
59 |
+
'Monolog\\Handler\\FormattableHandlerTrait' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FormattableHandlerTrait.php',
|
60 |
'Monolog\\Handler\\GelfHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/GelfHandler.php',
|
61 |
'Monolog\\Handler\\GroupHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/GroupHandler.php',
|
62 |
'Monolog\\Handler\\HandlerInterface' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/HandlerInterface.php',
|
74 |
'Monolog\\Handler\\NewRelicHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php',
|
75 |
'Monolog\\Handler\\NullHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/NullHandler.php',
|
76 |
'Monolog\\Handler\\PHPConsoleHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php',
|
77 |
+
'Monolog\\Handler\\ProcessableHandlerInterface' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/ProcessableHandlerInterface.php',
|
78 |
+
'Monolog\\Handler\\ProcessableHandlerTrait' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/ProcessableHandlerTrait.php',
|
79 |
'Monolog\\Handler\\PsrHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/PsrHandler.php',
|
80 |
'Monolog\\Handler\\PushoverHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/PushoverHandler.php',
|
81 |
'Monolog\\Handler\\RavenHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/RavenHandler.php',
|
177 |
'WPDesk_API_MENU' => $vendorDir . '/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-menu.php',
|
178 |
'WPDesk_API_Manager_With_Update_Flag' => $vendorDir . '/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager.php',
|
179 |
'WPDesk_API_Password_Management' => $vendorDir . '/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-passwords.php',
|
180 |
+
'WPDesk_Buildable' => $vendorDir . '/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Buildable.php',
|
181 |
'WPDesk_Conflict_Info' => $vendorDir . '/wpdesk/wp-plugin-flow/src/Compatibility/Conflict_Info.php',
|
182 |
'WPDesk_Flexible_Checkout_Fields_Tracker' => $baseDir . '/classes/tracker.php',
|
183 |
+
'WPDesk_Has_Plugin_Info' => $vendorDir . '/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Has_Plugin_Info.php',
|
184 |
'WPDesk_Logger' => $vendorDir . '/wpdesk/wp-logs/src/deprecated/wpdesk-logger.php',
|
185 |
'WPDesk_Logger_Factory' => $vendorDir . '/wpdesk/wp-logs/src/deprecated/wpdesk-logger-factory.php',
|
186 |
'WPDesk_Plugin_Build_Flow' => $vendorDir . '/wpdesk/wp-plugin-flow/src/Build_Flow/Plugin_Build_Flow.php',
|
191 |
'WPDesk_Plugin_Disabler' => $vendorDir . '/wpdesk/wp-plugin-flow/src/Compatibility/Plugin_Disabler.php',
|
192 |
'WPDesk_Plugin_Disabler_By_File' => $vendorDir . '/wpdesk/wp-plugin-flow/src/Compatibility/Plugin_Disabler_By_File.php',
|
193 |
'WPDesk_Plugin_Disabler_Variable' => $vendorDir . '/wpdesk/wp-plugin-flow/src/Compatibility/Plugin_Disabler_Variable.php',
|
194 |
+
'WPDesk_Plugin_Info' => $vendorDir . '/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Plugin_Info.php',
|
195 |
'WPDesk_Plugin_Init_Flow' => $vendorDir . '/wpdesk/wp-plugin-flow/src/Init_Flow/Plugin_Init_Flow.php',
|
196 |
'WPDesk_Plugin_Init_Flow_Factory' => $vendorDir . '/wpdesk/wp-plugin-flow/src/Init_Flow/Plugin_Init_Flow_Factory.php',
|
197 |
'WPDesk_Plugin_Init_Flow_Plugins_Loaded' => $vendorDir . '/wpdesk/wp-plugin-flow/src/Init_Flow/Plugin_Init_Flow_Plugins_Loaded.php',
|
226 |
'WPDesk_Tracker_Sender_Exception_WpError' => $vendorDir . '/wpdesk/wp-wpdesk-tracker/src/sender/Exception/class-wpdesk-tracker-sender-exception-wperror.php',
|
227 |
'WPDesk_Tracker_Sender_Logged' => $vendorDir . '/wpdesk/wp-wpdesk-tracker/src/sender/class-wpdesk-tracker-sender-logged.php',
|
228 |
'WPDesk_Tracker_Sender_Wordpress_To_WPDesk' => $vendorDir . '/wpdesk/wp-wpdesk-tracker/src/sender/class-wpdesk-tracker-sender-wordpress-to-wpdesk.php',
|
229 |
+
'WPDesk_Translable' => $vendorDir . '/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Translable.php',
|
230 |
+
'WPDesk_Translatable' => $vendorDir . '/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Translatable.php',
|
231 |
'WPDesk_Update_API_Check' => $vendorDir . '/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-plugin-update.php',
|
232 |
'WPDesk_Wordpress_Class_Loader' => $vendorDir . '/wpdesk/wp-class-loader/src/Wordpress_Class_Loader.php',
|
233 |
);
|
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 |
|
@@ -19,15 +19,15 @@ class ComposerAutoloaderInit1ff6be52da32db7b16ec4e5b8e0d66e2
|
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
-
spl_autoload_register(array('
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
-
spl_autoload_unregister(array('
|
25 |
|
26 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
27 |
if ($useStaticLoader) {
|
28 |
require_once __DIR__ . '/autoload_static.php';
|
29 |
|
30 |
-
call_user_func(\Composer\Autoload\
|
31 |
} else {
|
32 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
33 |
foreach ($map as $namespace => $path) {
|
@@ -48,19 +48,19 @@ class ComposerAutoloaderInit1ff6be52da32db7b16ec4e5b8e0d66e2
|
|
48 |
$loader->register(true);
|
49 |
|
50 |
if ($useStaticLoader) {
|
51 |
-
$includeFiles = Composer\Autoload\
|
52 |
} else {
|
53 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
54 |
}
|
55 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
56 |
-
|
57 |
}
|
58 |
|
59 |
return $loader;
|
60 |
}
|
61 |
}
|
62 |
|
63 |
-
function
|
64 |
{
|
65 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
66 |
require $file;
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
+
class ComposerAutoloaderInitb07d7b9a5825760e89d410a7aecd2a94
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
+
spl_autoload_register(array('ComposerAutoloaderInitb07d7b9a5825760e89d410a7aecd2a94', 'loadClassLoader'), true, true);
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInitb07d7b9a5825760e89d410a7aecd2a94', 'loadClassLoader'));
|
25 |
|
26 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
27 |
if ($useStaticLoader) {
|
28 |
require_once __DIR__ . '/autoload_static.php';
|
29 |
|
30 |
+
call_user_func(\Composer\Autoload\ComposerStaticInitb07d7b9a5825760e89d410a7aecd2a94::getInitializer($loader));
|
31 |
} else {
|
32 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
33 |
foreach ($map as $namespace => $path) {
|
48 |
$loader->register(true);
|
49 |
|
50 |
if ($useStaticLoader) {
|
51 |
+
$includeFiles = Composer\Autoload\ComposerStaticInitb07d7b9a5825760e89d410a7aecd2a94::$files;
|
52 |
} else {
|
53 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
54 |
}
|
55 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
56 |
+
composerRequireb07d7b9a5825760e89d410a7aecd2a94($fileIdentifier, $file);
|
57 |
}
|
58 |
|
59 |
return $loader;
|
60 |
}
|
61 |
}
|
62 |
|
63 |
+
function composerRequireb07d7b9a5825760e89d410a7aecd2a94($fileIdentifier, $file)
|
64 |
{
|
65 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
66 |
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 |
'0509b34a4bd7aebefeac629c9dc8a978' => __DIR__ . '/..' . '/wpdesk/wp-notice/src/WPDesk/notice-functions.php',
|
@@ -110,6 +110,8 @@ class ComposerStaticInit1ff6be52da32db7b16ec4e5b8e0d66e2
|
|
110 |
'Monolog\\Handler\\FirePHPHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php',
|
111 |
'Monolog\\Handler\\FleepHookHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php',
|
112 |
'Monolog\\Handler\\FlowdockHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php',
|
|
|
|
|
113 |
'Monolog\\Handler\\GelfHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/GelfHandler.php',
|
114 |
'Monolog\\Handler\\GroupHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/GroupHandler.php',
|
115 |
'Monolog\\Handler\\HandlerInterface' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/HandlerInterface.php',
|
@@ -127,6 +129,8 @@ class ComposerStaticInit1ff6be52da32db7b16ec4e5b8e0d66e2
|
|
127 |
'Monolog\\Handler\\NewRelicHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php',
|
128 |
'Monolog\\Handler\\NullHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/NullHandler.php',
|
129 |
'Monolog\\Handler\\PHPConsoleHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php',
|
|
|
|
|
130 |
'Monolog\\Handler\\PsrHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/PsrHandler.php',
|
131 |
'Monolog\\Handler\\PushoverHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/PushoverHandler.php',
|
132 |
'Monolog\\Handler\\RavenHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/RavenHandler.php',
|
@@ -228,8 +232,10 @@ class ComposerStaticInit1ff6be52da32db7b16ec4e5b8e0d66e2
|
|
228 |
'WPDesk_API_MENU' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-menu.php',
|
229 |
'WPDesk_API_Manager_With_Update_Flag' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager.php',
|
230 |
'WPDesk_API_Password_Management' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-passwords.php',
|
|
|
231 |
'WPDesk_Conflict_Info' => __DIR__ . '/..' . '/wpdesk/wp-plugin-flow/src/Compatibility/Conflict_Info.php',
|
232 |
'WPDesk_Flexible_Checkout_Fields_Tracker' => __DIR__ . '/../..' . '/classes/tracker.php',
|
|
|
233 |
'WPDesk_Logger' => __DIR__ . '/..' . '/wpdesk/wp-logs/src/deprecated/wpdesk-logger.php',
|
234 |
'WPDesk_Logger_Factory' => __DIR__ . '/..' . '/wpdesk/wp-logs/src/deprecated/wpdesk-logger-factory.php',
|
235 |
'WPDesk_Plugin_Build_Flow' => __DIR__ . '/..' . '/wpdesk/wp-plugin-flow/src/Build_Flow/Plugin_Build_Flow.php',
|
@@ -240,6 +246,7 @@ class ComposerStaticInit1ff6be52da32db7b16ec4e5b8e0d66e2
|
|
240 |
'WPDesk_Plugin_Disabler' => __DIR__ . '/..' . '/wpdesk/wp-plugin-flow/src/Compatibility/Plugin_Disabler.php',
|
241 |
'WPDesk_Plugin_Disabler_By_File' => __DIR__ . '/..' . '/wpdesk/wp-plugin-flow/src/Compatibility/Plugin_Disabler_By_File.php',
|
242 |
'WPDesk_Plugin_Disabler_Variable' => __DIR__ . '/..' . '/wpdesk/wp-plugin-flow/src/Compatibility/Plugin_Disabler_Variable.php',
|
|
|
243 |
'WPDesk_Plugin_Init_Flow' => __DIR__ . '/..' . '/wpdesk/wp-plugin-flow/src/Init_Flow/Plugin_Init_Flow.php',
|
244 |
'WPDesk_Plugin_Init_Flow_Factory' => __DIR__ . '/..' . '/wpdesk/wp-plugin-flow/src/Init_Flow/Plugin_Init_Flow_Factory.php',
|
245 |
'WPDesk_Plugin_Init_Flow_Plugins_Loaded' => __DIR__ . '/..' . '/wpdesk/wp-plugin-flow/src/Init_Flow/Plugin_Init_Flow_Plugins_Loaded.php',
|
@@ -274,6 +281,8 @@ class ComposerStaticInit1ff6be52da32db7b16ec4e5b8e0d66e2
|
|
274 |
'WPDesk_Tracker_Sender_Exception_WpError' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-tracker/src/sender/Exception/class-wpdesk-tracker-sender-exception-wperror.php',
|
275 |
'WPDesk_Tracker_Sender_Logged' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-tracker/src/sender/class-wpdesk-tracker-sender-logged.php',
|
276 |
'WPDesk_Tracker_Sender_Wordpress_To_WPDesk' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-tracker/src/sender/class-wpdesk-tracker-sender-wordpress-to-wpdesk.php',
|
|
|
|
|
277 |
'WPDesk_Update_API_Check' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-plugin-update.php',
|
278 |
'WPDesk_Wordpress_Class_Loader' => __DIR__ . '/..' . '/wpdesk/wp-class-loader/src/Wordpress_Class_Loader.php',
|
279 |
);
|
@@ -281,9 +290,9 @@ class ComposerStaticInit1ff6be52da32db7b16ec4e5b8e0d66e2
|
|
281 |
public static function getInitializer(ClassLoader $loader)
|
282 |
{
|
283 |
return \Closure::bind(function () use ($loader) {
|
284 |
-
$loader->prefixLengthsPsr4 =
|
285 |
-
$loader->prefixDirsPsr4 =
|
286 |
-
$loader->classMap =
|
287 |
|
288 |
}, null, ClassLoader::class);
|
289 |
}
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
+
class ComposerStaticInitb07d7b9a5825760e89d410a7aecd2a94
|
8 |
{
|
9 |
public static $files = array (
|
10 |
'0509b34a4bd7aebefeac629c9dc8a978' => __DIR__ . '/..' . '/wpdesk/wp-notice/src/WPDesk/notice-functions.php',
|
110 |
'Monolog\\Handler\\FirePHPHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php',
|
111 |
'Monolog\\Handler\\FleepHookHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php',
|
112 |
'Monolog\\Handler\\FlowdockHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php',
|
113 |
+
'Monolog\\Handler\\FormattableHandlerInterface' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FormattableHandlerInterface.php',
|
114 |
+
'Monolog\\Handler\\FormattableHandlerTrait' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FormattableHandlerTrait.php',
|
115 |
'Monolog\\Handler\\GelfHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/GelfHandler.php',
|
116 |
'Monolog\\Handler\\GroupHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/GroupHandler.php',
|
117 |
'Monolog\\Handler\\HandlerInterface' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/HandlerInterface.php',
|
129 |
'Monolog\\Handler\\NewRelicHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php',
|
130 |
'Monolog\\Handler\\NullHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/NullHandler.php',
|
131 |
'Monolog\\Handler\\PHPConsoleHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php',
|
132 |
+
'Monolog\\Handler\\ProcessableHandlerInterface' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/ProcessableHandlerInterface.php',
|
133 |
+
'Monolog\\Handler\\ProcessableHandlerTrait' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/ProcessableHandlerTrait.php',
|
134 |
'Monolog\\Handler\\PsrHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/PsrHandler.php',
|
135 |
'Monolog\\Handler\\PushoverHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/PushoverHandler.php',
|
136 |
'Monolog\\Handler\\RavenHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/RavenHandler.php',
|
232 |
'WPDesk_API_MENU' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-menu.php',
|
233 |
'WPDesk_API_Manager_With_Update_Flag' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager.php',
|
234 |
'WPDesk_API_Password_Management' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-passwords.php',
|
235 |
+
'WPDesk_Buildable' => __DIR__ . '/..' . '/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Buildable.php',
|
236 |
'WPDesk_Conflict_Info' => __DIR__ . '/..' . '/wpdesk/wp-plugin-flow/src/Compatibility/Conflict_Info.php',
|
237 |
'WPDesk_Flexible_Checkout_Fields_Tracker' => __DIR__ . '/../..' . '/classes/tracker.php',
|
238 |
+
'WPDesk_Has_Plugin_Info' => __DIR__ . '/..' . '/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Has_Plugin_Info.php',
|
239 |
'WPDesk_Logger' => __DIR__ . '/..' . '/wpdesk/wp-logs/src/deprecated/wpdesk-logger.php',
|
240 |
'WPDesk_Logger_Factory' => __DIR__ . '/..' . '/wpdesk/wp-logs/src/deprecated/wpdesk-logger-factory.php',
|
241 |
'WPDesk_Plugin_Build_Flow' => __DIR__ . '/..' . '/wpdesk/wp-plugin-flow/src/Build_Flow/Plugin_Build_Flow.php',
|
246 |
'WPDesk_Plugin_Disabler' => __DIR__ . '/..' . '/wpdesk/wp-plugin-flow/src/Compatibility/Plugin_Disabler.php',
|
247 |
'WPDesk_Plugin_Disabler_By_File' => __DIR__ . '/..' . '/wpdesk/wp-plugin-flow/src/Compatibility/Plugin_Disabler_By_File.php',
|
248 |
'WPDesk_Plugin_Disabler_Variable' => __DIR__ . '/..' . '/wpdesk/wp-plugin-flow/src/Compatibility/Plugin_Disabler_Variable.php',
|
249 |
+
'WPDesk_Plugin_Info' => __DIR__ . '/..' . '/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Plugin_Info.php',
|
250 |
'WPDesk_Plugin_Init_Flow' => __DIR__ . '/..' . '/wpdesk/wp-plugin-flow/src/Init_Flow/Plugin_Init_Flow.php',
|
251 |
'WPDesk_Plugin_Init_Flow_Factory' => __DIR__ . '/..' . '/wpdesk/wp-plugin-flow/src/Init_Flow/Plugin_Init_Flow_Factory.php',
|
252 |
'WPDesk_Plugin_Init_Flow_Plugins_Loaded' => __DIR__ . '/..' . '/wpdesk/wp-plugin-flow/src/Init_Flow/Plugin_Init_Flow_Plugins_Loaded.php',
|
281 |
'WPDesk_Tracker_Sender_Exception_WpError' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-tracker/src/sender/Exception/class-wpdesk-tracker-sender-exception-wperror.php',
|
282 |
'WPDesk_Tracker_Sender_Logged' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-tracker/src/sender/class-wpdesk-tracker-sender-logged.php',
|
283 |
'WPDesk_Tracker_Sender_Wordpress_To_WPDesk' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-tracker/src/sender/class-wpdesk-tracker-sender-wordpress-to-wpdesk.php',
|
284 |
+
'WPDesk_Translable' => __DIR__ . '/..' . '/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Translable.php',
|
285 |
+
'WPDesk_Translatable' => __DIR__ . '/..' . '/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Translatable.php',
|
286 |
'WPDesk_Update_API_Check' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-plugin-update.php',
|
287 |
'WPDesk_Wordpress_Class_Loader' => __DIR__ . '/..' . '/wpdesk/wp-class-loader/src/Wordpress_Class_Loader.php',
|
288 |
);
|
290 |
public static function getInitializer(ClassLoader $loader)
|
291 |
{
|
292 |
return \Closure::bind(function () use ($loader) {
|
293 |
+
$loader->prefixLengthsPsr4 = ComposerStaticInitb07d7b9a5825760e89d410a7aecd2a94::$prefixLengthsPsr4;
|
294 |
+
$loader->prefixDirsPsr4 = ComposerStaticInitb07d7b9a5825760e89d410a7aecd2a94::$prefixDirsPsr4;
|
295 |
+
$loader->classMap = ComposerStaticInitb07d7b9a5825760e89d410a7aecd2a94::$classMap;
|
296 |
|
297 |
}, null, ClassLoader::class);
|
298 |
}
|
vendor/composer/installed.json
CHANGED
@@ -1,17 +1,17 @@
|
|
1 |
[
|
2 |
{
|
3 |
"name": "monolog/monolog",
|
4 |
-
"version": "1.
|
5 |
-
"version_normalized": "1.
|
6 |
"source": {
|
7 |
"type": "git",
|
8 |
"url": "https://github.com/Seldaek/monolog.git",
|
9 |
-
"reference": "
|
10 |
},
|
11 |
"dist": {
|
12 |
"type": "zip",
|
13 |
-
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/
|
14 |
-
"reference": "
|
15 |
"shasum": ""
|
16 |
},
|
17 |
"require": {
|
@@ -47,7 +47,7 @@
|
|
47 |
"ruflin/elastica": "Allow sending log messages to an Elastic Search server",
|
48 |
"sentry/sentry": "Allow sending log messages to a Sentry server"
|
49 |
},
|
50 |
-
"time": "
|
51 |
"type": "library",
|
52 |
"extra": {
|
53 |
"branch-alias": {
|
@@ -207,22 +207,21 @@
|
|
207 |
},
|
208 |
{
|
209 |
"name": "wpdesk/wp-builder",
|
210 |
-
"version": "1.2
|
211 |
-
"version_normalized": "1.2.0
|
212 |
"source": {
|
213 |
"type": "git",
|
214 |
"url": "https://gitlab.com/wpdesk/wp-builder.git",
|
215 |
-
"reference": "
|
216 |
},
|
217 |
"dist": {
|
218 |
"type": "zip",
|
219 |
-
"url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-builder/repository/archive.zip?sha=
|
220 |
-
"reference": "
|
221 |
"shasum": ""
|
222 |
},
|
223 |
"require": {
|
224 |
-
"php": ">=5.5"
|
225 |
-
"wpdesk/wp-basic-requirements": "^2.0"
|
226 |
},
|
227 |
"require-dev": {
|
228 |
"10up/wp_mock": "*",
|
@@ -232,13 +231,16 @@
|
|
232 |
"wimg/php-compatibility": "^8",
|
233 |
"wp-coding-standards/wpcs": "^0.14.1"
|
234 |
},
|
235 |
-
"time": "2019-
|
236 |
"type": "library",
|
237 |
"installation-source": "dist",
|
238 |
"autoload": {
|
239 |
"psr-4": {
|
240 |
"WPDesk\\PluginBuilder\\": "src/"
|
241 |
-
}
|
|
|
|
|
|
|
242 |
},
|
243 |
"notification-url": "https://packagist.org/downloads/",
|
244 |
"authors": [
|
@@ -486,24 +488,24 @@
|
|
486 |
},
|
487 |
{
|
488 |
"name": "wpdesk/wp-wpdesk-license",
|
489 |
-
"version": "2.
|
490 |
-
"version_normalized": "2.
|
491 |
"source": {
|
492 |
"type": "git",
|
493 |
"url": "https://gitlab.com/wpdesk/wp-wpdesk-license.git",
|
494 |
-
"reference": "
|
495 |
},
|
496 |
"dist": {
|
497 |
"type": "zip",
|
498 |
-
"url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-wpdesk-license/repository/archive.zip?sha=
|
499 |
-
"reference": "
|
500 |
"shasum": ""
|
501 |
},
|
502 |
"require": {
|
503 |
"ext-curl": "*",
|
504 |
"ext-json": "*",
|
505 |
"php": ">=5.6",
|
506 |
-
"wpdesk/wp-
|
507 |
"wpdesk/wp-notice": "^3.0"
|
508 |
},
|
509 |
"require-dev": {
|
@@ -513,7 +515,7 @@
|
|
513 |
"squizlabs/php_codesniffer": "^3.0.2",
|
514 |
"wp-coding-standards/wpcs": "^0.14.1"
|
515 |
},
|
516 |
-
"time": "2019-
|
517 |
"type": "library",
|
518 |
"installation-source": "dist",
|
519 |
"autoload": {
|
1 |
[
|
2 |
{
|
3 |
"name": "monolog/monolog",
|
4 |
+
"version": "1.25.1",
|
5 |
+
"version_normalized": "1.25.1.0",
|
6 |
"source": {
|
7 |
"type": "git",
|
8 |
"url": "https://github.com/Seldaek/monolog.git",
|
9 |
+
"reference": "70e65a5470a42cfec1a7da00d30edb6e617e8dcf"
|
10 |
},
|
11 |
"dist": {
|
12 |
"type": "zip",
|
13 |
+
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/70e65a5470a42cfec1a7da00d30edb6e617e8dcf",
|
14 |
+
"reference": "70e65a5470a42cfec1a7da00d30edb6e617e8dcf",
|
15 |
"shasum": ""
|
16 |
},
|
17 |
"require": {
|
47 |
"ruflin/elastica": "Allow sending log messages to an Elastic Search server",
|
48 |
"sentry/sentry": "Allow sending log messages to a Sentry server"
|
49 |
},
|
50 |
+
"time": "2019-09-06T13:49:17+00:00",
|
51 |
"type": "library",
|
52 |
"extra": {
|
53 |
"branch-alias": {
|
207 |
},
|
208 |
{
|
209 |
"name": "wpdesk/wp-builder",
|
210 |
+
"version": "1.3.2",
|
211 |
+
"version_normalized": "1.3.2.0",
|
212 |
"source": {
|
213 |
"type": "git",
|
214 |
"url": "https://gitlab.com/wpdesk/wp-builder.git",
|
215 |
+
"reference": "455dd537c65ab474b2223320d295834c55b8925c"
|
216 |
},
|
217 |
"dist": {
|
218 |
"type": "zip",
|
219 |
+
"url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-builder/repository/archive.zip?sha=455dd537c65ab474b2223320d295834c55b8925c",
|
220 |
+
"reference": "455dd537c65ab474b2223320d295834c55b8925c",
|
221 |
"shasum": ""
|
222 |
},
|
223 |
"require": {
|
224 |
+
"php": ">=5.5"
|
|
|
225 |
},
|
226 |
"require-dev": {
|
227 |
"10up/wp_mock": "*",
|
231 |
"wimg/php-compatibility": "^8",
|
232 |
"wp-coding-standards/wpcs": "^0.14.1"
|
233 |
},
|
234 |
+
"time": "2019-09-18T14:51:51+00:00",
|
235 |
"type": "library",
|
236 |
"installation-source": "dist",
|
237 |
"autoload": {
|
238 |
"psr-4": {
|
239 |
"WPDesk\\PluginBuilder\\": "src/"
|
240 |
+
},
|
241 |
+
"classmap": [
|
242 |
+
"src/Plugin/WithoutNamespace"
|
243 |
+
]
|
244 |
},
|
245 |
"notification-url": "https://packagist.org/downloads/",
|
246 |
"authors": [
|
488 |
},
|
489 |
{
|
490 |
"name": "wpdesk/wp-wpdesk-license",
|
491 |
+
"version": "2.4",
|
492 |
+
"version_normalized": "2.4.0.0",
|
493 |
"source": {
|
494 |
"type": "git",
|
495 |
"url": "https://gitlab.com/wpdesk/wp-wpdesk-license.git",
|
496 |
+
"reference": "992778321025e8f2cb4d85c83150cc757cfa619c"
|
497 |
},
|
498 |
"dist": {
|
499 |
"type": "zip",
|
500 |
+
"url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-wpdesk-license/repository/archive.zip?sha=992778321025e8f2cb4d85c83150cc757cfa619c",
|
501 |
+
"reference": "992778321025e8f2cb4d85c83150cc757cfa619c",
|
502 |
"shasum": ""
|
503 |
},
|
504 |
"require": {
|
505 |
"ext-curl": "*",
|
506 |
"ext-json": "*",
|
507 |
"php": ">=5.6",
|
508 |
+
"wpdesk/wp-builder": "^1.3.1",
|
509 |
"wpdesk/wp-notice": "^3.0"
|
510 |
},
|
511 |
"require-dev": {
|
515 |
"squizlabs/php_codesniffer": "^3.0.2",
|
516 |
"wp-coding-standards/wpcs": "^0.14.1"
|
517 |
},
|
518 |
+
"time": "2019-09-18T14:35:26+00:00",
|
519 |
"type": "library",
|
520 |
"installation-source": "dist",
|
521 |
"autoload": {
|
vendor/monolog/monolog/.php_cs
DELETED
@@ -1,59 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
$header = <<<EOF
|
4 |
-
This file is part of the Monolog package.
|
5 |
-
|
6 |
-
(c) Jordi Boggiano <j.boggiano@seld.be>
|
7 |
-
|
8 |
-
For the full copyright and license information, please view the LICENSE
|
9 |
-
file that was distributed with this source code.
|
10 |
-
EOF;
|
11 |
-
|
12 |
-
$finder = Symfony\CS\Finder::create()
|
13 |
-
->files()
|
14 |
-
->name('*.php')
|
15 |
-
->exclude('Fixtures')
|
16 |
-
->in(__DIR__.'/src')
|
17 |
-
->in(__DIR__.'/tests')
|
18 |
-
;
|
19 |
-
|
20 |
-
return Symfony\CS\Config::create()
|
21 |
-
->setUsingCache(true)
|
22 |
-
//->setUsingLinter(false)
|
23 |
-
->setRiskyAllowed(true)
|
24 |
-
->setRules(array(
|
25 |
-
'@PSR2' => true,
|
26 |
-
'binary_operator_spaces' => true,
|
27 |
-
'blank_line_before_return' => true,
|
28 |
-
'header_comment' => array('header' => $header),
|
29 |
-
'include' => true,
|
30 |
-
'long_array_syntax' => true,
|
31 |
-
'method_separation' => true,
|
32 |
-
'no_blank_lines_after_class_opening' => true,
|
33 |
-
'no_blank_lines_after_phpdoc' => true,
|
34 |
-
'no_blank_lines_between_uses' => true,
|
35 |
-
'no_duplicate_semicolons' => true,
|
36 |
-
'no_extra_consecutive_blank_lines' => true,
|
37 |
-
'no_leading_import_slash' => true,
|
38 |
-
'no_leading_namespace_whitespace' => true,
|
39 |
-
'no_trailing_comma_in_singleline_array' => true,
|
40 |
-
'no_unused_imports' => true,
|
41 |
-
'object_operator_without_whitespace' => true,
|
42 |
-
'phpdoc_align' => true,
|
43 |
-
'phpdoc_indent' => true,
|
44 |
-
'phpdoc_no_access' => true,
|
45 |
-
'phpdoc_no_package' => true,
|
46 |
-
'phpdoc_order' => true,
|
47 |
-
'phpdoc_scalar' => true,
|
48 |
-
'phpdoc_trim' => true,
|
49 |
-
'phpdoc_type_to_var' => true,
|
50 |
-
'psr0' => true,
|
51 |
-
'single_blank_line_before_namespace' => true,
|
52 |
-
'spaces_cast' => true,
|
53 |
-
'standardize_not_equals' => true,
|
54 |
-
'ternary_operator_spaces' => true,
|
55 |
-
'trailing_comma_in_multiline_array' => true,
|
56 |
-
'whitespacy_lines' => true,
|
57 |
-
))
|
58 |
-
->finder($finder)
|
59 |
-
;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/monolog/monolog/CHANGELOG.md
CHANGED
@@ -1,5 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
### 1.24.0 (2018-11-05)
|
2 |
|
|
|
3 |
* Added a `ResettableInterface` in order to reset/reset/clear/flush handlers and processors
|
4 |
* Added a `ProcessorInterface` as an optional way to label a class as being a processor (mostly useful for autowiring dependency containers)
|
5 |
* Added a way to log signals being received using Monolog\SignalHandler
|
1 |
+
### 1.25.1 (2019-09-06)
|
2 |
+
|
3 |
+
* Fixed forward-compatible interfaces to be compatible with Monolog 1.x too.
|
4 |
+
|
5 |
+
### 1.25.0 (2019-09-06)
|
6 |
+
|
7 |
+
* Deprecated SlackbotHandler, use SlackWebhookHandler or SlackHandler instead
|
8 |
+
* Deprecated RavenHandler, use sentry/sentry 2.x and their Sentry\Monolog\Handler instead
|
9 |
+
* Deprecated HipChatHandler, migrate to Slack and use SlackWebhookHandler or SlackHandler instead
|
10 |
+
* Added forward-compatible interfaces and traits FormattableHandlerInterface, FormattableHandlerTrait, ProcessableHandlerInterface, ProcessableHandlerTrait. If you use modern PHP and want to make code compatible with Monolog 1 and 2 this can help. You will have to require at least Monolog 1.25 though.
|
11 |
+
* Added support for RFC3164 (outdated BSD syslog protocol) to SyslogUdpHandler
|
12 |
+
* Fixed issue in GroupHandler and WhatFailureGroupHandler where setting multiple processors would duplicate records
|
13 |
+
* Fixed issue in SignalHandler restarting syscalls functionality
|
14 |
+
* Fixed normalizers handling of exception backtraces to avoid serializing arguments in some cases
|
15 |
+
* Fixed ZendMonitorHandler to work with the latest Zend Server versions
|
16 |
+
* Fixed ChromePHPHandler to avoid sending more data than latest Chrome versions allow in headers (4KB down from 256KB).
|
17 |
+
|
18 |
### 1.24.0 (2018-11-05)
|
19 |
|
20 |
+
* BC Notice: If you are extending any of the Monolog's Formatters' `normalize` method, make sure you add the new `$depth = 0` argument to your function signature to avoid strict PHP warnings.
|
21 |
* Added a `ResettableInterface` in order to reset/reset/clear/flush handlers and processors
|
22 |
* Added a `ProcessorInterface` as an optional way to label a class as being a processor (mostly useful for autowiring dependency containers)
|
23 |
* Added a way to log signals being received using Monolog\SignalHandler
|
vendor/monolog/monolog/composer.json
CHANGED
@@ -59,7 +59,7 @@
|
|
59 |
},
|
60 |
"scripts": {
|
61 |
"test": [
|
62 |
-
"parallel-lint . --exclude vendor",
|
63 |
"phpunit"
|
64 |
]
|
65 |
}
|
59 |
},
|
60 |
"scripts": {
|
61 |
"test": [
|
62 |
+
"parallel-lint . --exclude vendor --exclude src/Monolog/Handler/FormattableHandlerInterface.php --exclude src/Monolog/Handler/FormattableHandlerTrait.php --exclude src/Monolog/Handler/ProcessableHandlerInterface.php --exclude src/Monolog/Handler/ProcessableHandlerTrait.php",
|
63 |
"phpunit"
|
64 |
]
|
65 |
}
|
vendor/monolog/monolog/doc/01-usage.md
DELETED
@@ -1,231 +0,0 @@
|
|
1 |
-
# Using Monolog
|
2 |
-
|
3 |
-
- [Installation](#installation)
|
4 |
-
- [Core Concepts](#core-concepts)
|
5 |
-
- [Log Levels](#log-levels)
|
6 |
-
- [Configuring a logger](#configuring-a-logger)
|
7 |
-
- [Adding extra data in the records](#adding-extra-data-in-the-records)
|
8 |
-
- [Leveraging channels](#leveraging-channels)
|
9 |
-
- [Customizing the log format](#customizing-the-log-format)
|
10 |
-
|
11 |
-
## Installation
|
12 |
-
|
13 |
-
Monolog is available on Packagist ([monolog/monolog](http://packagist.org/packages/monolog/monolog))
|
14 |
-
and as such installable via [Composer](http://getcomposer.org/).
|
15 |
-
|
16 |
-
```bash
|
17 |
-
composer require monolog/monolog
|
18 |
-
```
|
19 |
-
|
20 |
-
If you do not use Composer, you can grab the code from GitHub, and use any
|
21 |
-
PSR-0 compatible autoloader (e.g. the [Symfony2 ClassLoader component](https://github.com/symfony/ClassLoader))
|
22 |
-
to load Monolog classes.
|
23 |
-
|
24 |
-
## Core Concepts
|
25 |
-
|
26 |
-
Every `Logger` instance has a channel (name) and a stack of handlers. Whenever
|
27 |
-
you add a record to the logger, it traverses the handler stack. Each handler
|
28 |
-
decides whether it fully handled the record, and if so, the propagation of the
|
29 |
-
record ends there.
|
30 |
-
|
31 |
-
This allows for flexible logging setups, for example having a `StreamHandler` at
|
32 |
-
the bottom of the stack that will log anything to disk, and on top of that add
|
33 |
-
a `MailHandler` that will send emails only when an error message is logged.
|
34 |
-
Handlers also have a `$bubble` property which defines whether they block the
|
35 |
-
record or not if they handled it. In this example, setting the `MailHandler`'s
|
36 |
-
`$bubble` argument to false means that records handled by the `MailHandler` will
|
37 |
-
not propagate to the `StreamHandler` anymore.
|
38 |
-
|
39 |
-
You can create many `Logger`s, each defining a channel (e.g.: db, request,
|
40 |
-
router, ..) and each of them combining various handlers, which can be shared
|
41 |
-
or not. The channel is reflected in the logs and allows you to easily see or
|
42 |
-
filter records.
|
43 |
-
|
44 |
-
Each Handler also has a Formatter, a default one with settings that make sense
|
45 |
-
will be created if you don't set one. The formatters normalize and format
|
46 |
-
incoming records so that they can be used by the handlers to output useful
|
47 |
-
information.
|
48 |
-
|
49 |
-
Custom severity levels are not available. Only the eight
|
50 |
-
[RFC 5424](http://tools.ietf.org/html/rfc5424) levels (debug, info, notice,
|
51 |
-
warning, error, critical, alert, emergency) are present for basic filtering
|
52 |
-
purposes, but for sorting and other use cases that would require
|
53 |
-
flexibility, you should add Processors to the Logger that can add extra
|
54 |
-
information (tags, user ip, ..) to the records before they are handled.
|
55 |
-
|
56 |
-
## Log Levels
|
57 |
-
|
58 |
-
Monolog supports the logging levels described by [RFC 5424](http://tools.ietf.org/html/rfc5424).
|
59 |
-
|
60 |
-
- **DEBUG** (100): Detailed debug information.
|
61 |
-
|
62 |
-
- **INFO** (200): Interesting events. Examples: User logs in, SQL logs.
|
63 |
-
|
64 |
-
- **NOTICE** (250): Normal but significant events.
|
65 |
-
|
66 |
-
- **WARNING** (300): Exceptional occurrences that are not errors. Examples:
|
67 |
-
Use of deprecated APIs, poor use of an API, undesirable things that are not
|
68 |
-
necessarily wrong.
|
69 |
-
|
70 |
-
- **ERROR** (400): Runtime errors that do not require immediate action but
|
71 |
-
should typically be logged and monitored.
|
72 |
-
|
73 |
-
- **CRITICAL** (500): Critical conditions. Example: Application component
|
74 |
-
unavailable, unexpected exception.
|
75 |
-
|
76 |
-
- **ALERT** (550): Action must be taken immediately. Example: Entire website
|
77 |
-
down, database unavailable, etc. This should trigger the SMS alerts and wake
|
78 |
-
you up.
|
79 |
-
|
80 |
-
- **EMERGENCY** (600): Emergency: system is unusable.
|
81 |
-
|
82 |
-
## Configuring a logger
|
83 |
-
|
84 |
-
Here is a basic setup to log to a file and to firephp on the DEBUG level:
|
85 |
-
|
86 |
-
```php
|
87 |
-
<?php
|
88 |
-
|
89 |
-
use Monolog\Logger;
|
90 |
-
use Monolog\Handler\StreamHandler;
|
91 |
-
use Monolog\Handler\FirePHPHandler;
|
92 |
-
|
93 |
-
// Create the logger
|
94 |
-
$logger = new Logger('my_logger');
|
95 |
-
// Now add some handlers
|
96 |
-
$logger->pushHandler(new StreamHandler(__DIR__.'/my_app.log', Logger::DEBUG));
|
97 |
-
$logger->pushHandler(new FirePHPHandler());
|
98 |
-
|
99 |
-
// You can now use your logger
|
100 |
-
$logger->addInfo('My logger is now ready');
|
101 |
-
```
|
102 |
-
|
103 |
-
Let's explain it. The first step is to create the logger instance which will
|
104 |
-
be used in your code. The argument is a channel name, which is useful when
|
105 |
-
you use several loggers (see below for more details about it).
|
106 |
-
|
107 |
-
The logger itself does not know how to handle a record. It delegates it to
|
108 |
-
some handlers. The code above registers two handlers in the stack to allow
|
109 |
-
handling records in two different ways.
|
110 |
-
|
111 |
-
Note that the FirePHPHandler is called first as it is added on top of the
|
112 |
-
stack. This allows you to temporarily add a logger with bubbling disabled if
|
113 |
-
you want to override other configured loggers.
|
114 |
-
|
115 |
-
> If you use Monolog standalone and are looking for an easy way to
|
116 |
-
> configure many handlers, the [theorchard/monolog-cascade](https://github.com/theorchard/monolog-cascade)
|
117 |
-
> can help you build complex logging configs via PHP arrays, yaml or json configs.
|
118 |
-
|
119 |
-
## Adding extra data in the records
|
120 |
-
|
121 |
-
Monolog provides two different ways to add extra informations along the simple
|
122 |
-
textual message.
|
123 |
-
|
124 |
-
### Using the logging context
|
125 |
-
|
126 |
-
The first way is the context, allowing to pass an array of data along the
|
127 |
-
record:
|
128 |
-
|
129 |
-
```php
|
130 |
-
<?php
|
131 |
-
|
132 |
-
$logger->addInfo('Adding a new user', array('username' => 'Seldaek'));
|
133 |
-
```
|
134 |
-
|
135 |
-
Simple handlers (like the StreamHandler for instance) will simply format
|
136 |
-
the array to a string but richer handlers can take advantage of the context
|
137 |
-
(FirePHP is able to display arrays in pretty way for instance).
|
138 |
-
|
139 |
-
### Using processors
|
140 |
-
|
141 |
-
The second way is to add extra data for all records by using a processor.
|
142 |
-
Processors can be any callable. They will get the record as parameter and
|
143 |
-
must return it after having eventually changed the `extra` part of it. Let's
|
144 |
-
write a processor adding some dummy data in the record:
|
145 |
-
|
146 |
-
```php
|
147 |
-
<?php
|
148 |
-
|
149 |
-
$logger->pushProcessor(function ($record) {
|
150 |
-
$record['extra']['dummy'] = 'Hello world!';
|
151 |
-
|
152 |
-
return $record;
|
153 |
-
});
|
154 |
-
```
|
155 |
-
|
156 |
-
Monolog provides some built-in processors that can be used in your project.
|
157 |
-
Look at the [dedicated chapter](https://github.com/Seldaek/monolog/blob/master/doc/02-handlers-formatters-processors.md#processors) for the list.
|
158 |
-
|
159 |
-
> Tip: processors can also be registered on a specific handler instead of
|
160 |
-
the logger to apply only for this handler.
|
161 |
-
|
162 |
-
## Leveraging channels
|
163 |
-
|
164 |
-
Channels are a great way to identify to which part of the application a record
|
165 |
-
is related. This is useful in big applications (and is leveraged by
|
166 |
-
MonologBundle in Symfony2).
|
167 |
-
|
168 |
-
Picture two loggers sharing a handler that writes to a single log file.
|
169 |
-
Channels would allow you to identify the logger that issued every record.
|
170 |
-
You can easily grep through the log files filtering this or that channel.
|
171 |
-
|
172 |
-
```php
|
173 |
-
<?php
|
174 |
-
|
175 |
-
use Monolog\Logger;
|
176 |
-
use Monolog\Handler\StreamHandler;
|
177 |
-
use Monolog\Handler\FirePHPHandler;
|
178 |
-
|
179 |
-
// Create some handlers
|
180 |
-
$stream = new StreamHandler(__DIR__.'/my_app.log', Logger::DEBUG);
|
181 |
-
$firephp = new FirePHPHandler();
|
182 |
-
|
183 |
-
// Create the main logger of the app
|
184 |
-
$logger = new Logger('my_logger');
|
185 |
-
$logger->pushHandler($stream);
|
186 |
-
$logger->pushHandler($firephp);
|
187 |
-
|
188 |
-
// Create a logger for the security-related stuff with a different channel
|
189 |
-
$securityLogger = new Logger('security');
|
190 |
-
$securityLogger->pushHandler($stream);
|
191 |
-
$securityLogger->pushHandler($firephp);
|
192 |
-
|
193 |
-
// Or clone the first one to only change the channel
|
194 |
-
$securityLogger = $logger->withName('security');
|
195 |
-
```
|
196 |
-
|
197 |
-
## Customizing the log format
|
198 |
-
|
199 |
-
In Monolog it's easy to customize the format of the logs written into files,
|
200 |
-
sockets, mails, databases and other handlers. Most of the handlers use the
|
201 |
-
|
202 |
-
```php
|
203 |
-
$record['formatted']
|
204 |
-
```
|
205 |
-
|
206 |
-
value to be automatically put into the log device. This value depends on the
|
207 |
-
formatter settings. You can choose between predefined formatter classes or
|
208 |
-
write your own (e.g. a multiline text file for human-readable output).
|
209 |
-
|
210 |
-
To configure a predefined formatter class, just set it as the handler's field:
|
211 |
-
|
212 |
-
```php
|
213 |
-
// the default date format is "Y-m-d H:i:s"
|
214 |
-
$dateFormat = "Y n j, g:i a";
|
215 |
-
// the default output format is "[%datetime%] %channel%.%level_name%: %message% %context% %extra%\n"
|
216 |
-
$output = "%datetime% > %level_name% > %message% %context% %extra%\n";
|
217 |
-
// finally, create a formatter
|
218 |
-
$formatter = new LineFormatter($output, $dateFormat);
|
219 |
-
|
220 |
-
// Create a handler
|
221 |
-
$stream = new StreamHandler(__DIR__.'/my_app.log', Logger::DEBUG);
|
222 |
-
$stream->setFormatter($formatter);
|
223 |
-
// bind it to a logger object
|
224 |
-
$securityLogger = new Logger('security');
|
225 |
-
$securityLogger->pushHandler($stream);
|
226 |
-
```
|
227 |
-
|
228 |
-
You may also reuse the same formatter between multiple handlers and share those
|
229 |
-
handlers between multiple loggers.
|
230 |
-
|
231 |
-
[Handlers, Formatters and Processors](02-handlers-formatters-processors.md) →
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/monolog/monolog/doc/02-handlers-formatters-processors.md
DELETED
@@ -1,158 +0,0 @@
|
|
1 |
-
# Handlers, Formatters and Processors
|
2 |
-
|
3 |
-
- [Handlers](#handlers)
|
4 |
-
- [Log to files and syslog](#log-to-files-and-syslog)
|
5 |
-
- [Send alerts and emails](#send-alerts-and-emails)
|
6 |
-
- [Log specific servers and networked logging](#log-specific-servers-and-networked-logging)
|
7 |
-
- [Logging in development](#logging-in-development)
|
8 |
-
- [Log to databases](#log-to-databases)
|
9 |
-
- [Wrappers / Special Handlers](#wrappers--special-handlers)
|
10 |
-
- [Formatters](#formatters)
|
11 |
-
- [Processors](#processors)
|
12 |
-
- [Third Party Packages](#third-party-packages)
|
13 |
-
|
14 |
-
## Handlers
|
15 |
-
|
16 |
-
### Log to files and syslog
|
17 |
-
|
18 |
-
- _StreamHandler_: Logs records into any PHP stream, use this for log files.
|
19 |
-
- _RotatingFileHandler_: Logs records to a file and creates one logfile per day.
|
20 |
-
It will also delete files older than `$maxFiles`. You should use
|
21 |
-
[logrotate](http://linuxcommand.org/man_pages/logrotate8.html) for high profile
|
22 |
-
setups though, this is just meant as a quick and dirty solution.
|
23 |
-
- _SyslogHandler_: Logs records to the syslog.
|
24 |
-
- _ErrorLogHandler_: Logs records to PHP's
|
25 |
-
[`error_log()`](http://docs.php.net/manual/en/function.error-log.php) function.
|
26 |
-
|
27 |
-
### Send alerts and emails
|
28 |
-
|
29 |
-
- _NativeMailerHandler_: Sends emails using PHP's
|
30 |
-
[`mail()`](http://php.net/manual/en/function.mail.php) function.
|
31 |
-
- _SwiftMailerHandler_: Sends emails using a [`Swift_Mailer`](http://swiftmailer.org/) instance.
|
32 |
-
- _PushoverHandler_: Sends mobile notifications via the [Pushover](https://www.pushover.net/) API.
|
33 |
-
- _HipChatHandler_: Logs records to a [HipChat](http://hipchat.com) chat room using its API.
|
34 |
-
- _FlowdockHandler_: Logs records to a [Flowdock](https://www.flowdock.com/) account.
|
35 |
-
- _SlackHandler_: Logs records to a [Slack](https://www.slack.com/) account using the Slack API.
|
36 |
-
- _SlackbotHandler_: Logs records to a [Slack](https://www.slack.com/) account using the Slackbot incoming hook.
|
37 |
-
- _SlackWebhookHandler_: Logs records to a [Slack](https://www.slack.com/) account using Slack Webhooks.
|
38 |
-
- _MandrillHandler_: Sends emails via the Mandrill API using a [`Swift_Message`](http://swiftmailer.org/) instance.
|
39 |
-
- _FleepHookHandler_: Logs records to a [Fleep](https://fleep.io/) conversation using Webhooks.
|
40 |
-
- _IFTTTHandler_: Notifies an [IFTTT](https://ifttt.com/maker) trigger with the log channel, level name and message.
|
41 |
-
|
42 |
-
### Log specific servers and networked logging
|
43 |
-
|
44 |
-
- _SocketHandler_: Logs records to [sockets](http://php.net/fsockopen), use this
|
45 |
-
for UNIX and TCP sockets. See an [example](sockets.md).
|
46 |
-
- _AmqpHandler_: Logs records to an [amqp](http://www.amqp.org/) compatible
|
47 |
-
server. Requires the [php-amqp](http://pecl.php.net/package/amqp) extension (1.0+).
|
48 |
-
- _GelfHandler_: Logs records to a [Graylog2](http://www.graylog2.org) server.
|
49 |
-
- _CubeHandler_: Logs records to a [Cube](http://square.github.com/cube/) server.
|
50 |
-
- _RavenHandler_: Logs records to a [Sentry](http://getsentry.com/) server using
|
51 |
-
[raven](https://packagist.org/packages/raven/raven).
|
52 |
-
- _ZendMonitorHandler_: Logs records to the Zend Monitor present in Zend Server.
|
53 |
-
- _NewRelicHandler_: Logs records to a [NewRelic](http://newrelic.com/) application.
|
54 |
-
- _LogglyHandler_: Logs records to a [Loggly](http://www.loggly.com/) account.
|
55 |
-
- _RollbarHandler_: Logs records to a [Rollbar](https://rollbar.com/) account.
|
56 |
-
- _SyslogUdpHandler_: Logs records to a remote [Syslogd](http://www.rsyslog.com/) server.
|
57 |
-
- _LogEntriesHandler_: Logs records to a [LogEntries](http://logentries.com/) account.
|
58 |
-
- _InsightOpsHandler_: Logs records to a [InsightOps](https://www.rapid7.com/products/insightops/) account.
|
59 |
-
|
60 |
-
### Logging in development
|
61 |
-
|
62 |
-
- _FirePHPHandler_: Handler for [FirePHP](http://www.firephp.org/), providing
|
63 |
-
inline `console` messages within [FireBug](http://getfirebug.com/).
|
64 |
-
- _ChromePHPHandler_: Handler for [ChromePHP](http://www.chromephp.com/), providing
|
65 |
-
inline `console` messages within Chrome.
|
66 |
-
- _BrowserConsoleHandler_: Handler to send logs to browser's Javascript `console` with
|
67 |
-
no browser extension required. Most browsers supporting `console` API are supported.
|
68 |
-
- _PHPConsoleHandler_: Handler for [PHP Console](https://chrome.google.com/webstore/detail/php-console/nfhmhhlpfleoednkpnnnkolmclajemef), providing
|
69 |
-
inline `console` and notification popup messages within Chrome.
|
70 |
-
|
71 |
-
### Log to databases
|
72 |
-
|
73 |
-
- _RedisHandler_: Logs records to a [redis](http://redis.io) server.
|
74 |
-
- _MongoDBHandler_: Handler to write records in MongoDB via a
|
75 |
-
[Mongo](http://pecl.php.net/package/mongo) extension connection.
|
76 |
-
- _CouchDBHandler_: Logs records to a CouchDB server.
|
77 |
-
- _DoctrineCouchDBHandler_: Logs records to a CouchDB server via the Doctrine CouchDB ODM.
|
78 |
-
- _ElasticSearchHandler_: Logs records to an Elastic Search server.
|
79 |
-
- _DynamoDbHandler_: Logs records to a DynamoDB table with the [AWS SDK](https://github.com/aws/aws-sdk-php).
|
80 |
-
|
81 |
-
### Wrappers / Special Handlers
|
82 |
-
|
83 |
-
- _FingersCrossedHandler_: A very interesting wrapper. It takes a logger as
|
84 |
-
parameter and will accumulate log records of all levels until a record
|
85 |
-
exceeds the defined severity level. At which point it delivers all records,
|
86 |
-
including those of lower severity, to the handler it wraps. This means that
|
87 |
-
until an error actually happens you will not see anything in your logs, but
|
88 |
-
when it happens you will have the full information, including debug and info
|
89 |
-
records. This provides you with all the information you need, but only when
|
90 |
-
you need it.
|
91 |
-
- _DeduplicationHandler_: Useful if you are sending notifications or emails
|
92 |
-
when critical errors occur. It takes a logger as parameter and will
|
93 |
-
accumulate log records of all levels until the end of the request (or
|
94 |
-
`flush()` is called). At that point it delivers all records to the handler
|
95 |
-
it wraps, but only if the records are unique over a given time period
|
96 |
-
(60seconds by default). If the records are duplicates they are simply
|
97 |
-
discarded. The main use of this is in case of critical failure like if your
|
98 |
-
database is unreachable for example all your requests will fail and that
|
99 |
-
can result in a lot of notifications being sent. Adding this handler reduces
|
100 |
-
the amount of notifications to a manageable level.
|
101 |
-
- _WhatFailureGroupHandler_: This handler extends the _GroupHandler_ ignoring
|
102 |
-
exceptions raised by each child handler. This allows you to ignore issues
|
103 |
-
where a remote tcp connection may have died but you do not want your entire
|
104 |
-
application to crash and may wish to continue to log to other handlers.
|
105 |
-
- _BufferHandler_: This handler will buffer all the log records it receives
|
106 |
-
until `close()` is called at which point it will call `handleBatch()` on the
|
107 |
-
handler it wraps with all the log messages at once. This is very useful to
|
108 |
-
send an email with all records at once for example instead of having one mail
|
109 |
-
for every log record.
|
110 |
-
- _GroupHandler_: This handler groups other handlers. Every record received is
|
111 |
-
sent to all the handlers it is configured with.
|
112 |
-
- _FilterHandler_: This handler only lets records of the given levels through
|
113 |
-
to the wrapped handler.
|
114 |
-
- _SamplingHandler_: Wraps around another handler and lets you sample records
|
115 |
-
if you only want to store some of them.
|
116 |
-
- _NullHandler_: Any record it can handle will be thrown away. This can be used
|
117 |
-
to put on top of an existing handler stack to disable it temporarily.
|
118 |
-
- _PsrHandler_: Can be used to forward log records to an existing PSR-3 logger
|
119 |
-
- _TestHandler_: Used for testing, it records everything that is sent to it and
|
120 |
-
has accessors to read out the information.
|
121 |
-
- _HandlerWrapper_: A simple handler wrapper you can inherit from to create
|
122 |
-
your own wrappers easily.
|
123 |
-
|
124 |
-
## Formatters
|
125 |
-
|
126 |
-
- _LineFormatter_: Formats a log record into a one-line string.
|
127 |
-
- _HtmlFormatter_: Used to format log records into a human readable html table, mainly suitable for emails.
|
128 |
-
- _NormalizerFormatter_: Normalizes objects/resources down to strings so a record can easily be serialized/encoded.
|
129 |
-
- _ScalarFormatter_: Used to format log records into an associative array of scalar values.
|
130 |
-
- _JsonFormatter_: Encodes a log record into json.
|
131 |
-
- _WildfireFormatter_: Used to format log records into the Wildfire/FirePHP protocol, only useful for the FirePHPHandler.
|
132 |
-
- _ChromePHPFormatter_: Used to format log records into the ChromePHP format, only useful for the ChromePHPHandler.
|
133 |
-
- _GelfMessageFormatter_: Used to format log records into Gelf message instances, only useful for the GelfHandler.
|
134 |
-
- _LogstashFormatter_: Used to format log records into [logstash](http://logstash.net/) event json, useful for any handler listed under inputs [here](http://logstash.net/docs/latest).
|
135 |
-
- _ElasticaFormatter_: Used to format log records into an Elastica\Document object, only useful for the ElasticSearchHandler.
|
136 |
-
- _LogglyFormatter_: Used to format log records into Loggly messages, only useful for the LogglyHandler.
|
137 |
-
- _FlowdockFormatter_: Used to format log records into Flowdock messages, only useful for the FlowdockHandler.
|
138 |
-
- _MongoDBFormatter_: Converts \DateTime instances to \MongoDate and objects recursively to arrays, only useful with the MongoDBHandler.
|
139 |
-
|
140 |
-
## Processors
|
141 |
-
|
142 |
-
- _PsrLogMessageProcessor_: Processes a log record's message according to PSR-3 rules, replacing `{foo}` with the value from `$context['foo']`.
|
143 |
-
- _IntrospectionProcessor_: Adds the line/file/class/method from which the log call originated.
|
144 |
-
- _WebProcessor_: Adds the current request URI, request method and client IP to a log record.
|
145 |
-
- _MemoryUsageProcessor_: Adds the current memory usage to a log record.
|
146 |
-
- _MemoryPeakUsageProcessor_: Adds the peak memory usage to a log record.
|
147 |
-
- _ProcessIdProcessor_: Adds the process id to a log record.
|
148 |
-
- _UidProcessor_: Adds a unique identifier to a log record.
|
149 |
-
- _GitProcessor_: Adds the current git branch and commit to a log record.
|
150 |
-
- _TagProcessor_: Adds an array of predefined tags to a log record.
|
151 |
-
|
152 |
-
## Third Party Packages
|
153 |
-
|
154 |
-
Third party handlers, formatters and processors are
|
155 |
-
[listed in the wiki](https://github.com/Seldaek/monolog/wiki/Third-Party-Packages). You
|
156 |
-
can also add your own there if you publish one.
|
157 |
-
|
158 |
-
← [Usage](01-usage.md) | [Utility classes](03-utilities.md) →
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/monolog/monolog/doc/03-utilities.md
DELETED
@@ -1,15 +0,0 @@
|
|
1 |
-
# Utilities
|
2 |
-
|
3 |
-
- _Registry_: The `Monolog\Registry` class lets you configure global loggers that you
|
4 |
-
can then statically access from anywhere. It is not really a best practice but can
|
5 |
-
help in some older codebases or for ease of use.
|
6 |
-
- _ErrorHandler_: The `Monolog\ErrorHandler` class allows you to easily register
|
7 |
-
a Logger instance as an exception handler, error handler or fatal error handler.
|
8 |
-
- _SignalHandler_: The `Monolog\SignalHandler` class allows you to easily register
|
9 |
-
a Logger instance as a POSIX signal handler.
|
10 |
-
- _ErrorLevelActivationStrategy_: Activates a FingersCrossedHandler when a certain log
|
11 |
-
level is reached.
|
12 |
-
- _ChannelLevelActivationStrategy_: Activates a FingersCrossedHandler when a certain
|
13 |
-
log level is reached, depending on which channel received the log record.
|
14 |
-
|
15 |
-
← [Handlers, Formatters and Processors](02-handlers-formatters-processors.md) | [Extending Monolog](04-extending.md) →
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/monolog/monolog/doc/04-extending.md
DELETED
@@ -1,76 +0,0 @@
|
|
1 |
-
# Extending Monolog
|
2 |
-
|
3 |
-
Monolog is fully extensible, allowing you to adapt your logger to your needs.
|
4 |
-
|
5 |
-
## Writing your own handler
|
6 |
-
|
7 |
-
Monolog provides many built-in handlers. But if the one you need does not
|
8 |
-
exist, you can write it and use it in your logger. The only requirement is
|
9 |
-
to implement `Monolog\Handler\HandlerInterface`.
|
10 |
-
|
11 |
-
Let's write a PDOHandler to log records to a database. We will extend the
|
12 |
-
abstract class provided by Monolog to keep things DRY.
|
13 |
-
|
14 |
-
```php
|
15 |
-
<?php
|
16 |
-
|
17 |
-
use Monolog\Logger;
|
18 |
-
use Monolog\Handler\AbstractProcessingHandler;
|
19 |
-
|
20 |
-
class PDOHandler extends AbstractProcessingHandler
|
21 |
-
{
|
22 |
-
private $initialized = false;
|
23 |
-
private $pdo;
|
24 |
-
private $statement;
|
25 |
-
|
26 |
-
public function __construct(PDO $pdo, $level = Logger::DEBUG, $bubble = true)
|
27 |
-
{
|
28 |
-
$this->pdo = $pdo;
|
29 |
-
parent::__construct($level, $bubble);
|
30 |
-
}
|
31 |
-
|
32 |
-
protected function write(array $record)
|
33 |
-
{
|
34 |
-
if (!$this->initialized) {
|
35 |
-
$this->initialize();
|
36 |
-
}
|
37 |
-
|
38 |
-
$this->statement->execute(array(
|
39 |
-
'channel' => $record['channel'],
|
40 |
-
'level' => $record['level'],
|
41 |
-
'message' => $record['formatted'],
|
42 |
-
'time' => $record['datetime']->format('U'),
|
43 |
-
));
|
44 |
-
}
|
45 |
-
|
46 |
-
private function initialize()
|
47 |
-
{
|
48 |
-
$this->pdo->exec(
|
49 |
-
'CREATE TABLE IF NOT EXISTS monolog '
|
50 |
-
.'(channel VARCHAR(255), level INTEGER, message LONGTEXT, time INTEGER UNSIGNED)'
|
51 |
-
);
|
52 |
-
$this->statement = $this->pdo->prepare(
|
53 |
-
'INSERT INTO monolog (channel, level, message, time) VALUES (:channel, :level, :message, :time)'
|
54 |
-
);
|
55 |
-
|
56 |
-
$this->initialized = true;
|
57 |
-
}
|
58 |
-
}
|
59 |
-
```
|
60 |
-
|
61 |
-
You can now use this handler in your logger:
|
62 |
-
|
63 |
-
```php
|
64 |
-
<?php
|
65 |
-
|
66 |
-
$logger->pushHandler(new PDOHandler(new PDO('sqlite:logs.sqlite')));
|
67 |
-
|
68 |
-
// You can now use your logger
|
69 |
-
$logger->addInfo('My logger is now ready');
|
70 |
-
```
|
71 |
-
|
72 |
-
The `Monolog\Handler\AbstractProcessingHandler` class provides most of the
|
73 |
-
logic needed for the handler, including the use of processors and the formatting
|
74 |
-
of the record (which is why we use ``$record['formatted']`` instead of ``$record['message']``).
|
75 |
-
|
76 |
-
← [Utility classes](03-utilities.md)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/monolog/monolog/doc/sockets.md
DELETED
@@ -1,39 +0,0 @@
|
|
1 |
-
Sockets Handler
|
2 |
-
===============
|
3 |
-
|
4 |
-
This handler allows you to write your logs to sockets using [fsockopen](http://php.net/fsockopen)
|
5 |
-
or [pfsockopen](http://php.net/pfsockopen).
|
6 |
-
|
7 |
-
Persistent sockets are mainly useful in web environments where you gain some performance not closing/opening
|
8 |
-
the connections between requests.
|
9 |
-
|
10 |
-
You can use a `unix://` prefix to access unix sockets and `udp://` to open UDP sockets instead of the default TCP.
|
11 |
-
|
12 |
-
Basic Example
|
13 |
-
-------------
|
14 |
-
|
15 |
-
```php
|
16 |
-
<?php
|
17 |
-
|
18 |
-
use Monolog\Logger;
|
19 |
-
use Monolog\Handler\SocketHandler;
|
20 |
-
|
21 |
-
// Create the logger
|
22 |
-
$logger = new Logger('my_logger');
|
23 |
-
|
24 |
-
// Create the handler
|
25 |
-
$handler = new SocketHandler('unix:///var/log/httpd_app_log.socket');
|
26 |
-
$handler->setPersistent(true);
|
27 |
-
|
28 |
-
// Now add the handler
|
29 |
-
$logger->pushHandler($handler, Logger::DEBUG);
|
30 |
-
|
31 |
-
// You can now use your logger
|
32 |
-
$logger->addInfo('My logger is now ready');
|
33 |
-
|
34 |
-
```
|
35 |
-
|
36 |
-
In this example, using syslog-ng, you should see the log on the log server:
|
37 |
-
|
38 |
-
cweb1 [2012-02-26 00:12:03] my_logger.INFO: My logger is now ready [] []
|
39 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/monolog/monolog/phpunit.xml.dist
DELETED
@@ -1,19 +0,0 @@
|
|
1 |
-
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
-
|
3 |
-
<phpunit bootstrap="vendor/autoload.php" colors="true">
|
4 |
-
<testsuites>
|
5 |
-
<testsuite name="Monolog Test Suite">
|
6 |
-
<directory>tests/Monolog/</directory>
|
7 |
-
</testsuite>
|
8 |
-
</testsuites>
|
9 |
-
|
10 |
-
<filter>
|
11 |
-
<whitelist>
|
12 |
-
<directory suffix=".php">src/Monolog/</directory>
|
13 |
-
</whitelist>
|
14 |
-
</filter>
|
15 |
-
|
16 |
-
<php>
|
17 |
-
<ini name="date.timezone" value="UTC"/>
|
18 |
-
</php>
|
19 |
-
</phpunit>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php
CHANGED
@@ -195,12 +195,6 @@ class JsonFormatter extends NormalizerFormatter
|
|
195 |
foreach ($trace as $frame) {
|
196 |
if (isset($frame['file'])) {
|
197 |
$data['trace'][] = $frame['file'].':'.$frame['line'];
|
198 |
-
} elseif (isset($frame['function']) && $frame['function'] === '{closure}') {
|
199 |
-
// We should again normalize the frames, because it might contain invalid items
|
200 |
-
$data['trace'][] = $frame['function'];
|
201 |
-
} else {
|
202 |
-
// We should again normalize the frames, because it might contain invalid items
|
203 |
-
$data['trace'][] = $this->normalize($frame);
|
204 |
}
|
205 |
}
|
206 |
}
|
195 |
foreach ($trace as $frame) {
|
196 |
if (isset($frame['file'])) {
|
197 |
$data['trace'][] = $frame['file'].':'.$frame['line'];
|
|
|
|
|
|
|
|
|
|
|
|
|
198 |
}
|
199 |
}
|
200 |
}
|
vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php
CHANGED
@@ -151,23 +151,6 @@ class NormalizerFormatter implements FormatterInterface
|
|
151 |
foreach ($trace as $frame) {
|
152 |
if (isset($frame['file'])) {
|
153 |
$data['trace'][] = $frame['file'].':'.$frame['line'];
|
154 |
-
} elseif (isset($frame['function']) && $frame['function'] === '{closure}') {
|
155 |
-
// Simplify closures handling
|
156 |
-
$data['trace'][] = $frame['function'];
|
157 |
-
} else {
|
158 |
-
if (isset($frame['args'])) {
|
159 |
-
// Make sure that objects present as arguments are not serialized nicely but rather only
|
160 |
-
// as a class name to avoid any unexpected leak of sensitive information
|
161 |
-
$frame['args'] = array_map(function ($arg) {
|
162 |
-
if (is_object($arg) && !($arg instanceof \DateTime || $arg instanceof \DateTimeInterface)) {
|
163 |
-
return sprintf("[object] (%s)", Utils::getClass($arg));
|
164 |
-
}
|
165 |
-
|
166 |
-
return $arg;
|
167 |
-
}, $frame['args']);
|
168 |
-
}
|
169 |
-
// We should again normalize the frames, because it might contain invalid items
|
170 |
-
$data['trace'][] = $this->toJson($this->normalize($frame), true);
|
171 |
}
|
172 |
}
|
173 |
|
151 |
foreach ($trace as $frame) {
|
152 |
if (isset($frame['file'])) {
|
153 |
$data['trace'][] = $frame['file'].':'.$frame['line'];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
154 |
}
|
155 |
}
|
156 |
|
vendor/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php
CHANGED
@@ -43,7 +43,7 @@ class ChromePHPHandler extends AbstractProcessingHandler
|
|
43 |
/**
|
44 |
* Tracks whether we sent too much data
|
45 |
*
|
46 |
-
* Chrome limits the headers to
|
47 |
*
|
48 |
* @var bool
|
49 |
*/
|
@@ -136,7 +136,7 @@ class ChromePHPHandler extends AbstractProcessingHandler
|
|
136 |
|
137 |
$json = @json_encode(self::$json);
|
138 |
$data = base64_encode(utf8_encode($json));
|
139 |
-
if (strlen($data) >
|
140 |
self::$overflowed = true;
|
141 |
|
142 |
$record = array(
|
43 |
/**
|
44 |
* Tracks whether we sent too much data
|
45 |
*
|
46 |
+
* Chrome limits the headers to 4KB, so when we sent 3KB we stop sending
|
47 |
*
|
48 |
* @var bool
|
49 |
*/
|
136 |
|
137 |
$json = @json_encode(self::$json);
|
138 |
$data = base64_encode(utf8_encode($json));
|
139 |
+
if (strlen($data) > 3 * 1024) {
|
140 |
self::$overflowed = true;
|
141 |
|
142 |
$record = array(
|
vendor/monolog/monolog/src/Monolog/Handler/FormattableHandlerInterface.php
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php declare(strict_types=1);
|
2 |
+
|
3 |
+
/*
|
4 |
+
* This file is part of the Monolog package.
|
5 |
+
*
|
6 |
+
* (c) Jordi Boggiano <j.boggiano@seld.be>
|
7 |
+
*
|
8 |
+
* For the full copyright and license information, please view the LICENSE
|
9 |
+
* file that was distributed with this source code.
|
10 |
+
*/
|
11 |
+
|
12 |
+
namespace Monolog\Handler;
|
13 |
+
|
14 |
+
use Monolog\Formatter\FormatterInterface;
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Interface to describe loggers that have a formatter
|
18 |
+
*
|
19 |
+
* This interface is present in monolog 1.x to ease forward compatibility.
|
20 |
+
*
|
21 |
+
* @author Jordi Boggiano <j.boggiano@seld.be>
|
22 |
+
*/
|
23 |
+
interface FormattableHandlerInterface
|
24 |
+
{
|
25 |
+
/**
|
26 |
+
* Sets the formatter.
|
27 |
+
*
|
28 |
+
* @param FormatterInterface $formatter
|
29 |
+
* @return HandlerInterface self
|
30 |
+
*/
|
31 |
+
public function setFormatter(FormatterInterface $formatter): HandlerInterface;
|
32 |
+
|
33 |
+
/**
|
34 |
+
* Gets the formatter.
|
35 |
+
*
|
36 |
+
* @return FormatterInterface
|
37 |
+
*/
|
38 |
+
public function getFormatter(): FormatterInterface;
|
39 |
+
}
|
vendor/monolog/monolog/src/Monolog/Handler/FormattableHandlerTrait.php
ADDED
@@ -0,0 +1,63 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php declare(strict_types=1);
|
2 |
+
|
3 |
+
/*
|
4 |
+
* This file is part of the Monolog package.
|
5 |
+
*
|
6 |
+
* (c) Jordi Boggiano <j.boggiano@seld.be>
|
7 |
+
*
|
8 |
+
* For the full copyright and license information, please view the LICENSE
|
9 |
+
* file that was distributed with this source code.
|
10 |
+
*/
|
11 |
+
|
12 |
+
namespace Monolog\Handler;
|
13 |
+
|
14 |
+
use Monolog\Formatter\FormatterInterface;
|
15 |
+
use Monolog\Formatter\LineFormatter;
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Helper trait for implementing FormattableInterface
|
19 |
+
*
|
20 |
+
* This trait is present in monolog 1.x to ease forward compatibility.
|
21 |
+
*
|
22 |
+
* @author Jordi Boggiano <j.boggiano@seld.be>
|
23 |
+
*/
|
24 |
+
trait FormattableHandlerTrait
|
25 |
+
{
|
26 |
+
/**
|
27 |
+
* @var FormatterInterface
|
28 |
+
*/
|
29 |
+
protected $formatter;
|
30 |
+
|
31 |
+
/**
|
32 |
+
* {@inheritdoc}
|
33 |
+
* @suppress PhanTypeMismatchReturn
|
34 |
+
*/
|
35 |
+
public function setFormatter(FormatterInterface $formatter): HandlerInterface
|
36 |
+
{
|
37 |
+
$this->formatter = $formatter;
|
38 |
+
|
39 |
+
return $this;
|
40 |
+
}
|
41 |
+
|
42 |
+
/**
|
43 |
+
* {@inheritdoc}
|
44 |
+
*/
|
45 |
+
public function getFormatter(): FormatterInterface
|
46 |
+
{
|
47 |
+
if (!$this->formatter) {
|
48 |
+
$this->formatter = $this->getDefaultFormatter();
|
49 |
+
}
|
50 |
+
|
51 |
+
return $this->formatter;
|
52 |
+
}
|
53 |
+
|
54 |
+
/**
|
55 |
+
* Gets the default formatter.
|
56 |
+
*
|
57 |
+
* Overwrite this if the LineFormatter is not a good default for your handler.
|
58 |
+
*/
|
59 |
+
protected function getDefaultFormatter(): FormatterInterface
|
60 |
+
{
|
61 |
+
return new LineFormatter();
|
62 |
+
}
|
63 |
+
}
|
vendor/monolog/monolog/src/Monolog/Handler/GroupHandler.php
CHANGED
@@ -80,8 +80,9 @@ class GroupHandler extends AbstractHandler
|
|
80 |
$processed = array();
|
81 |
foreach ($records as $record) {
|
82 |
foreach ($this->processors as $processor) {
|
83 |
-
$
|
84 |
}
|
|
|
85 |
}
|
86 |
$records = $processed;
|
87 |
}
|
80 |
$processed = array();
|
81 |
foreach ($records as $record) {
|
82 |
foreach ($this->processors as $processor) {
|
83 |
+
$record = call_user_func($processor, $record);
|
84 |
}
|
85 |
+
$processed[] = $record;
|
86 |
}
|
87 |
$records = $processed;
|
88 |
}
|
vendor/monolog/monolog/src/Monolog/Handler/HipChatHandler.php
CHANGED
@@ -97,6 +97,8 @@ class HipChatHandler extends SocketHandler
|
|
97 |
*/
|
98 |
public function __construct($token, $room, $name = 'Monolog', $notify = false, $level = Logger::CRITICAL, $bubble = true, $useSSL = true, $format = 'text', $host = 'api.hipchat.com', $version = self::API_V1)
|
99 |
{
|
|
|
|
|
100 |
if ($version == self::API_V1 && !$this->validateStringLength($name, static::MAXIMUM_NAME_LENGTH)) {
|
101 |
throw new \InvalidArgumentException('The supplied name is too long. HipChat\'s v1 API supports names up to 15 UTF-8 characters.');
|
102 |
}
|
97 |
*/
|
98 |
public function __construct($token, $room, $name = 'Monolog', $notify = false, $level = Logger::CRITICAL, $bubble = true, $useSSL = true, $format = 'text', $host = 'api.hipchat.com', $version = self::API_V1)
|
99 |
{
|
100 |
+
@trigger_error('The Monolog\Handler\HipChatHandler class is deprecated. You should migrate to Slack and the SlackWebhookHandler / SlackbotHandler, see https://www.atlassian.com/partnerships/slack', E_USER_DEPRECATED);
|
101 |
+
|
102 |
if ($version == self::API_V1 && !$this->validateStringLength($name, static::MAXIMUM_NAME_LENGTH)) {
|
103 |
throw new \InvalidArgumentException('The supplied name is too long. HipChat\'s v1 API supports names up to 15 UTF-8 characters.');
|
104 |
}
|
vendor/monolog/monolog/src/Monolog/Handler/InsightOpsHandler.php
CHANGED
@@ -38,7 +38,7 @@ class InsightOpsHandler extends SocketHandler
|
|
38 |
public function __construct($token, $region = 'us', $useSSL = true, $level = Logger::DEBUG, $bubble = true)
|
39 |
{
|
40 |
if ($useSSL && !extension_loaded('openssl')) {
|
41 |
-
throw new MissingExtensionException('The OpenSSL PHP plugin is required to use SSL encrypted connection for
|
42 |
}
|
43 |
|
44 |
$endpoint = $useSSL
|
38 |
public function __construct($token, $region = 'us', $useSSL = true, $level = Logger::DEBUG, $bubble = true)
|
39 |
{
|
40 |
if ($useSSL && !extension_loaded('openssl')) {
|
41 |
+
throw new MissingExtensionException('The OpenSSL PHP plugin is required to use SSL encrypted connection for InsightOpsHandler');
|
42 |
}
|
43 |
|
44 |
$endpoint = $useSSL
|
vendor/monolog/monolog/src/Monolog/Handler/ProcessableHandlerInterface.php
ADDED
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php declare(strict_types=1);
|
2 |
+
|
3 |
+
/*
|
4 |
+
* This file is part of the Monolog package.
|
5 |
+
*
|
6 |
+
* (c) Jordi Boggiano <j.boggiano@seld.be>
|
7 |
+
*
|
8 |
+
* For the full copyright and license information, please view the LICENSE
|
9 |
+
* file that was distributed with this source code.
|
10 |
+
*/
|
11 |
+
|
12 |
+
namespace Monolog\Handler;
|
13 |
+
|
14 |
+
use Monolog\Processor\ProcessorInterface;
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Interface to describe loggers that have processors
|
18 |
+
*
|
19 |
+
* This interface is present in monolog 1.x to ease forward compatibility.
|
20 |
+
*
|
21 |
+
* @author Jordi Boggiano <j.boggiano@seld.be>
|
22 |
+
*/
|
23 |
+
interface ProcessableHandlerInterface
|
24 |
+
{
|
25 |
+
/**
|
26 |
+
* Adds a processor in the stack.
|
27 |
+
*
|
28 |
+
* @param ProcessorInterface|callable $callback
|
29 |
+
* @return HandlerInterface self
|
30 |
+
*/
|
31 |
+
public function pushProcessor($callback): HandlerInterface;
|
32 |
+
|
33 |
+
/**
|
34 |
+
* Removes the processor on top of the stack and returns it.
|
35 |
+
*
|
36 |
+
* @throws \LogicException In case the processor stack is empty
|
37 |
+
* @return callable
|
38 |
+
*/
|
39 |
+
public function popProcessor(): callable;
|
40 |
+
}
|
vendor/monolog/monolog/src/Monolog/Handler/ProcessableHandlerTrait.php
ADDED
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php declare(strict_types=1);
|
2 |
+
|
3 |
+
/*
|
4 |
+
* This file is part of the Monolog package.
|
5 |
+
*
|
6 |
+
* (c) Jordi Boggiano <j.boggiano@seld.be>
|
7 |
+
*
|
8 |
+
* For the full copyright and license information, please view the LICENSE
|
9 |
+
* file that was distributed with this source code.
|
10 |
+
*/
|
11 |
+
|
12 |
+
namespace Monolog\Handler;
|
13 |
+
|
14 |
+
use Monolog\ResettableInterface;
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Helper trait for implementing ProcessableInterface
|
18 |
+
*
|
19 |
+
* This trait is present in monolog 1.x to ease forward compatibility.
|
20 |
+
*
|
21 |
+
* @author Jordi Boggiano <j.boggiano@seld.be>
|
22 |
+
*/
|
23 |
+
trait ProcessableHandlerTrait
|
24 |
+
{
|
25 |
+
/**
|
26 |
+
* @var callable[]
|
27 |
+
*/
|
28 |
+
protected $processors = [];
|
29 |
+
|
30 |
+
/**
|
31 |
+
* {@inheritdoc}
|
32 |
+
* @suppress PhanTypeMismatchReturn
|
33 |
+
*/
|
34 |
+
public function pushProcessor($callback): HandlerInterface
|
35 |
+
{
|
36 |
+
array_unshift($this->processors, $callback);
|
37 |
+
|
38 |
+
return $this;
|
39 |
+
}
|
40 |
+
|
41 |
+
/**
|
42 |
+
* {@inheritdoc}
|
43 |
+
*/
|
44 |
+
public function popProcessor(): callable
|
45 |
+
{
|
46 |
+
if (!$this->processors) {
|
47 |
+
throw new \LogicException('You tried to pop from an empty processor stack.');
|
48 |
+
}
|
49 |
+
|
50 |
+
return array_shift($this->processors);
|
51 |
+
}
|
52 |
+
|
53 |
+
/**
|
54 |
+
* Processes a record.
|
55 |
+
*/
|
56 |
+
protected function processRecord(array $record): array
|
57 |
+
{
|
58 |
+
foreach ($this->processors as $processor) {
|
59 |
+
$record = $processor($record);
|
60 |
+
}
|
61 |
+
|
62 |
+
return $record;
|
63 |
+
}
|
64 |
+
|
65 |
+
protected function resetProcessors(): void
|
66 |
+
{
|
67 |
+
foreach ($this->processors as $processor) {
|
68 |
+
if ($processor instanceof ResettableInterface) {
|
69 |
+
$processor->reset();
|
70 |
+
}
|
71 |
+
}
|
72 |
+
}
|
73 |
+
}
|
vendor/monolog/monolog/src/Monolog/Handler/RavenHandler.php
CHANGED
@@ -61,6 +61,8 @@ class RavenHandler extends AbstractProcessingHandler
|
|
61 |
*/
|
62 |
public function __construct(Raven_Client $ravenClient, $level = Logger::DEBUG, $bubble = true)
|
63 |
{
|
|
|
|
|
64 |
parent::__construct($level, $bubble);
|
65 |
|
66 |
$this->ravenClient = $ravenClient;
|
61 |
*/
|
62 |
public function __construct(Raven_Client $ravenClient, $level = Logger::DEBUG, $bubble = true)
|
63 |
{
|
64 |
+
@trigger_error('The Monolog\Handler\RavenHandler class is deprecated. You should rather upgrade to the sentry/sentry 2.x and use Sentry\Monolog\Handler, see https://github.com/getsentry/sentry-php/blob/master/src/Monolog/Handler.php', E_USER_DEPRECATED);
|
65 |
+
|
66 |
parent::__construct($level, $bubble);
|
67 |
|
68 |
$this->ravenClient = $ravenClient;
|
vendor/monolog/monolog/src/Monolog/Handler/SlackbotHandler.php
CHANGED
@@ -16,8 +16,11 @@ use Monolog\Logger;
|
|
16 |
/**
|
17 |
* Sends notifications through Slack's Slackbot
|
18 |
*
|
19 |
-
* @author
|
20 |
-
* @see
|
|
|
|
|
|
|
21 |
*/
|
22 |
class SlackbotHandler extends AbstractProcessingHandler
|
23 |
{
|
@@ -48,6 +51,7 @@ class SlackbotHandler extends AbstractProcessingHandler
|
|
48 |
*/
|
49 |
public function __construct($slackTeam, $token, $channel, $level = Logger::CRITICAL, $bubble = true)
|
50 |
{
|
|
|
51 |
parent::__construct($level, $bubble);
|
52 |
|
53 |
$this->slackTeam = $slackTeam;
|
16 |
/**
|
17 |
* Sends notifications through Slack's Slackbot
|
18 |
*
|
19 |
+
* @author Haralan Dobrev <hkdobrev@gmail.com>
|
20 |
+
* @see https://slack.com/apps/A0F81R8ET-slackbot
|
21 |
+
* @deprecated According to Slack the API used on this handler it is deprecated.
|
22 |
+
* Therefore this handler will be removed on 2.x
|
23 |
+
* Slack suggests to use webhooks instead. Please contact slack for more information.
|
24 |
*/
|
25 |
class SlackbotHandler extends AbstractProcessingHandler
|
26 |
{
|
51 |
*/
|
52 |
public function __construct($slackTeam, $token, $channel, $level = Logger::CRITICAL, $bubble = true)
|
53 |
{
|
54 |
+
@trigger_error('SlackbotHandler is deprecated and will be removed on 2.x', E_USER_DEPRECATED);
|
55 |
parent::__construct($level, $bubble);
|
56 |
|
57 |
$this->slackTeam = $slackTeam;
|
vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php
CHANGED
@@ -63,6 +63,7 @@ class StreamHandler extends AbstractProcessingHandler
|
|
63 |
fclose($this->stream);
|
64 |
}
|
65 |
$this->stream = null;
|
|
|
66 |
}
|
67 |
|
68 |
/**
|
63 |
fclose($this->stream);
|
64 |
}
|
65 |
$this->stream = null;
|
66 |
+
$this->dirCreated = null;
|
67 |
}
|
68 |
|
69 |
/**
|
vendor/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php
CHANGED
@@ -18,11 +18,21 @@ use Monolog\Handler\SyslogUdp\UdpSocket;
|
|
18 |
* A Handler for logging to a remote syslogd server.
|
19 |
*
|
20 |
* @author Jesper Skovgaard Nielsen <nulpunkt@gmail.com>
|
|
|
21 |
*/
|
22 |
class SyslogUdpHandler extends AbstractSyslogHandler
|
23 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
protected $socket;
|
25 |
protected $ident;
|
|
|
26 |
|
27 |
/**
|
28 |
* @param string $host
|
@@ -31,12 +41,14 @@ class SyslogUdpHandler extends AbstractSyslogHandler
|
|
31 |
* @param int $level The minimum logging level at which this handler will be triggered
|
32 |
* @param bool $bubble Whether the messages that are handled can bubble up the stack or not
|
33 |
* @param string $ident Program name or tag for each log message.
|
|
|
34 |
*/
|
35 |
-
public function __construct($host, $port = 514, $facility = LOG_USER, $level = Logger::DEBUG, $bubble = true, $ident = 'php')
|
36 |
{
|
37 |
parent::__construct($facility, $level, $bubble);
|
38 |
|
39 |
$this->ident = $ident;
|
|
|
40 |
|
41 |
$this->socket = new UdpSocket($host, $port ?: 514);
|
42 |
}
|
@@ -67,7 +79,7 @@ class SyslogUdpHandler extends AbstractSyslogHandler
|
|
67 |
}
|
68 |
|
69 |
/**
|
70 |
-
* Make common syslog header (see rfc5424)
|
71 |
*/
|
72 |
protected function makeCommonSyslogHeader($severity)
|
73 |
{
|
@@ -81,16 +93,25 @@ class SyslogUdpHandler extends AbstractSyslogHandler
|
|
81 |
$hostname = '-';
|
82 |
}
|
83 |
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
}
|
90 |
|
91 |
protected function getDateTime()
|
92 |
{
|
93 |
-
return date(
|
94 |
}
|
95 |
|
96 |
/**
|
18 |
* A Handler for logging to a remote syslogd server.
|
19 |
*
|
20 |
* @author Jesper Skovgaard Nielsen <nulpunkt@gmail.com>
|
21 |
+
* @author Dominik Kukacka <dominik.kukacka@gmail.com>
|
22 |
*/
|
23 |
class SyslogUdpHandler extends AbstractSyslogHandler
|
24 |
{
|
25 |
+
const RFC3164 = 0;
|
26 |
+
const RFC5424 = 1;
|
27 |
+
|
28 |
+
private $dateFormats = array(
|
29 |
+
self::RFC3164 => 'M d H:i:s',
|
30 |
+
self::RFC5424 => \DateTime::RFC3339,
|
31 |
+
);
|
32 |
+
|
33 |
protected $socket;
|
34 |
protected $ident;
|
35 |
+
protected $rfc;
|
36 |
|
37 |
/**
|
38 |
* @param string $host
|
41 |
* @param int $level The minimum logging level at which this handler will be triggered
|
42 |
* @param bool $bubble Whether the messages that are handled can bubble up the stack or not
|
43 |
* @param string $ident Program name or tag for each log message.
|
44 |
+
* @param int $rfc RFC to format the message for.
|
45 |
*/
|
46 |
+
public function __construct($host, $port = 514, $facility = LOG_USER, $level = Logger::DEBUG, $bubble = true, $ident = 'php', $rfc = self::RFC5424)
|
47 |
{
|
48 |
parent::__construct($facility, $level, $bubble);
|
49 |
|
50 |
$this->ident = $ident;
|
51 |
+
$this->rfc = $rfc;
|
52 |
|
53 |
$this->socket = new UdpSocket($host, $port ?: 514);
|
54 |
}
|
79 |
}
|
80 |
|
81 |
/**
|
82 |
+
* Make common syslog header (see rfc5424 or rfc3164)
|
83 |
*/
|
84 |
protected function makeCommonSyslogHeader($severity)
|
85 |
{
|
93 |
$hostname = '-';
|
94 |
}
|
95 |
|
96 |
+
$date = $this->getDateTime();
|
97 |
+
|
98 |
+
if ($this->rfc === self::RFC3164) {
|
99 |
+
return "<$priority>" .
|
100 |
+
$date . " " .
|
101 |
+
$hostname . " " .
|
102 |
+
$this->ident . "[" . $pid . "]: ";
|
103 |
+
} else {
|
104 |
+
return "<$priority>1 " .
|
105 |
+
$date . " " .
|
106 |
+
$hostname . " " .
|
107 |
+
$this->ident . " " .
|
108 |
+
$pid . " - - ";
|
109 |
+
}
|
110 |
}
|
111 |
|
112 |
protected function getDateTime()
|
113 |
{
|
114 |
+
return date($this->dateFormats[$this->rfc]);
|
115 |
}
|
116 |
|
117 |
/**
|
vendor/monolog/monolog/src/Monolog/Handler/TestHandler.php
CHANGED
@@ -67,6 +67,7 @@ class TestHandler extends AbstractProcessingHandler
|
|
67 |
{
|
68 |
protected $records = array();
|
69 |
protected $recordsByLevel = array();
|
|
|
70 |
|
71 |
public function getRecords()
|
72 |
{
|
@@ -79,6 +80,18 @@ class TestHandler extends AbstractProcessingHandler
|
|
79 |
$this->recordsByLevel = array();
|
80 |
}
|
81 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
public function hasRecords($level)
|
83 |
{
|
84 |
return isset($this->recordsByLevel[$level]);
|
67 |
{
|
68 |
protected $records = array();
|
69 |
protected $recordsByLevel = array();
|
70 |
+
private $skipReset = false;
|
71 |
|
72 |
public function getRecords()
|
73 |
{
|
80 |
$this->recordsByLevel = array();
|
81 |
}
|
82 |
|
83 |
+
public function reset()
|
84 |
+
{
|
85 |
+
if (!$this->skipReset) {
|
86 |
+
$this->clear();
|
87 |
+
}
|
88 |
+
}
|
89 |
+
|
90 |
+
public function setSkipReset($skipReset)
|
91 |
+
{
|
92 |
+
$this->skipReset = $skipReset;
|
93 |
+
}
|
94 |
+
|
95 |
public function hasRecords($level)
|
96 |
{
|
97 |
return isset($this->recordsByLevel[$level]);
|
vendor/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php
CHANGED
@@ -52,8 +52,9 @@ class WhatFailureGroupHandler extends GroupHandler
|
|
52 |
$processed = array();
|
53 |
foreach ($records as $record) {
|
54 |
foreach ($this->processors as $processor) {
|
55 |
-
$
|
56 |
}
|
|
|
57 |
}
|
58 |
$records = $processed;
|
59 |
}
|
52 |
$processed = array();
|
53 |
foreach ($records as $record) {
|
54 |
foreach ($this->processors as $processor) {
|
55 |
+
$record = call_user_func($processor, $record);
|
56 |
}
|
57 |
+
$processed[] = $record;
|
58 |
}
|
59 |
$records = $processed;
|
60 |
}
|
vendor/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php
CHANGED
@@ -17,6 +17,7 @@ use Monolog\Logger;
|
|
17 |
* Handler sending logs to Zend Monitor
|
18 |
*
|
19 |
* @author Christian Bergau <cbergau86@gmail.com>
|
|
|
20 |
*/
|
21 |
class ZendMonitorHandler extends AbstractProcessingHandler
|
22 |
{
|
@@ -25,16 +26,7 @@ class ZendMonitorHandler extends AbstractProcessingHandler
|
|
25 |
*
|
26 |
* @var array
|
27 |
*/
|
28 |
-
protected $levelMap = array(
|
29 |
-
Logger::DEBUG => 1,
|
30 |
-
Logger::INFO => 2,
|
31 |
-
Logger::NOTICE => 3,
|
32 |
-
Logger::WARNING => 4,
|
33 |
-
Logger::ERROR => 5,
|
34 |
-
Logger::CRITICAL => 6,
|
35 |
-
Logger::ALERT => 7,
|
36 |
-
Logger::EMERGENCY => 0,
|
37 |
-
);
|
38 |
|
39 |
/**
|
40 |
* Construct
|
@@ -46,8 +38,21 @@ class ZendMonitorHandler extends AbstractProcessingHandler
|
|
46 |
public function __construct($level = Logger::DEBUG, $bubble = true)
|
47 |
{
|
48 |
if (!function_exists('zend_monitor_custom_event')) {
|
49 |
-
throw new MissingExtensionException(
|
|
|
|
|
50 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
parent::__construct($level, $bubble);
|
52 |
}
|
53 |
|
@@ -57,22 +62,23 @@ class ZendMonitorHandler extends AbstractProcessingHandler
|
|
57 |
protected function write(array $record)
|
58 |
{
|
59 |
$this->writeZendMonitorCustomEvent(
|
60 |
-
$
|
61 |
$record['message'],
|
62 |
-
$record['formatted']
|
|
|
63 |
);
|
64 |
}
|
65 |
|
66 |
/**
|
67 |
-
* Write
|
68 |
-
*
|
69 |
-
* @param
|
70 |
-
* @param
|
71 |
-
* @param
|
72 |
*/
|
73 |
-
protected function writeZendMonitorCustomEvent($
|
74 |
{
|
75 |
-
zend_monitor_custom_event($
|
76 |
}
|
77 |
|
78 |
/**
|
17 |
* Handler sending logs to Zend Monitor
|
18 |
*
|
19 |
* @author Christian Bergau <cbergau86@gmail.com>
|
20 |
+
* @author Jason Davis <happydude@jasondavis.net>
|
21 |
*/
|
22 |
class ZendMonitorHandler extends AbstractProcessingHandler
|
23 |
{
|
26 |
*
|
27 |
* @var array
|
28 |
*/
|
29 |
+
protected $levelMap = array();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
|
31 |
/**
|
32 |
* Construct
|
38 |
public function __construct($level = Logger::DEBUG, $bubble = true)
|
39 |
{
|
40 |
if (!function_exists('zend_monitor_custom_event')) {
|
41 |
+
throw new MissingExtensionException(
|
42 |
+
'You must have Zend Server installed with Zend Monitor enabled in order to use this handler'
|
43 |
+
);
|
44 |
}
|
45 |
+
//zend monitor constants are not defined if zend monitor is not enabled.
|
46 |
+
$this->levelMap = array(
|
47 |
+
Logger::DEBUG => \ZEND_MONITOR_EVENT_SEVERITY_INFO,
|
48 |
+
Logger::INFO => \ZEND_MONITOR_EVENT_SEVERITY_INFO,
|
49 |
+
Logger::NOTICE => \ZEND_MONITOR_EVENT_SEVERITY_INFO,
|
50 |
+
Logger::WARNING => \ZEND_MONITOR_EVENT_SEVERITY_WARNING,
|
51 |
+
Logger::ERROR => \ZEND_MONITOR_EVENT_SEVERITY_ERROR,
|
52 |
+
Logger::CRITICAL => \ZEND_MONITOR_EVENT_SEVERITY_ERROR,
|
53 |
+
Logger::ALERT => \ZEND_MONITOR_EVENT_SEVERITY_ERROR,
|
54 |
+
Logger::EMERGENCY => \ZEND_MONITOR_EVENT_SEVERITY_ERROR,
|
55 |
+
);
|
56 |
parent::__construct($level, $bubble);
|
57 |
}
|
58 |
|
62 |
protected function write(array $record)
|
63 |
{
|
64 |
$this->writeZendMonitorCustomEvent(
|
65 |
+
Logger::getLevelName($record['level']),
|
66 |
$record['message'],
|
67 |
+
$record['formatted'],
|
68 |
+
$this->levelMap[$record['level']]
|
69 |
);
|
70 |
}
|
71 |
|
72 |
/**
|
73 |
+
* Write to Zend Monitor Events
|
74 |
+
* @param string $type Text displayed in "Class Name (custom)" field
|
75 |
+
* @param string $message Text displayed in "Error String"
|
76 |
+
* @param mixed $formatted Displayed in Custom Variables tab
|
77 |
+
* @param int $severity Set the event severity level (-1,0,1)
|
78 |
*/
|
79 |
+
protected function writeZendMonitorCustomEvent($type, $message, $formatted, $severity)
|
80 |
{
|
81 |
+
zend_monitor_custom_event($type, $message, $formatted, $severity);
|
82 |
}
|
83 |
|
84 |
/**
|
vendor/monolog/monolog/src/Monolog/SignalHandler.php
CHANGED
@@ -96,7 +96,7 @@ class SignalHandler
|
|
96 |
if ($this->previousSignalHandler[$signo] === true || $this->previousSignalHandler[$signo] === SIG_DFL) {
|
97 |
if (extension_loaded('pcntl') && function_exists('pcntl_signal') && function_exists('pcntl_sigprocmask') && function_exists('pcntl_signal_dispatch')
|
98 |
&& extension_loaded('posix') && function_exists('posix_getpid') && function_exists('posix_kill')) {
|
99 |
-
$restartSyscalls = isset($this->
|
100 |
pcntl_signal($signo, SIG_DFL, $restartSyscalls);
|
101 |
pcntl_sigprocmask(SIG_UNBLOCK, array($signo), $oldset);
|
102 |
posix_kill(posix_getpid(), $signo);
|
96 |
if ($this->previousSignalHandler[$signo] === true || $this->previousSignalHandler[$signo] === SIG_DFL) {
|
97 |
if (extension_loaded('pcntl') && function_exists('pcntl_signal') && function_exists('pcntl_sigprocmask') && function_exists('pcntl_signal_dispatch')
|
98 |
&& extension_loaded('posix') && function_exists('posix_getpid') && function_exists('posix_kill')) {
|
99 |
+
$restartSyscalls = isset($this->signalRestartSyscalls[$signo]) ? $this->signalRestartSyscalls[$signo] : true;
|
100 |
pcntl_signal($signo, SIG_DFL, $restartSyscalls);
|
101 |
pcntl_sigprocmask(SIG_UNBLOCK, array($signo), $oldset);
|
102 |
posix_kill(posix_getpid(), $signo);
|
vendor/wpdesk/wp-builder/.gitignore
CHANGED
@@ -1,2 +1,3 @@
|
|
1 |
/vendor/
|
2 |
-
.idea
|
|
1 |
/vendor/
|
2 |
+
.idea
|
3 |
+
composer.lock
|
vendor/wpdesk/wp-builder/CHANGELOG.md
CHANGED
@@ -1,3 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
## [1.2.0] - 2019-06-26
|
2 |
### Added
|
3 |
- InfoActivationBuilder with capability to set info if plugin subscription is active
|
1 |
+
## [1.3.2] - 2019-09-18
|
2 |
+
### Fixed
|
3 |
+
- Forgotten classes
|
4 |
+
- Fixed require_once
|
5 |
+
|
6 |
+
## [1.3.0] - 2019-09-18
|
7 |
+
### Added
|
8 |
+
- Plugin classes from wp-requirements
|
9 |
+
|
10 |
## [1.2.0] - 2019-06-26
|
11 |
### Added
|
12 |
- InfoActivationBuilder with capability to set info if plugin subscription is active
|
vendor/wpdesk/wp-builder/apigen.neon
CHANGED
@@ -2,15 +2,15 @@ destination: docs
|
|
2 |
templateConfig: /app/theme-woocommerce/config.neon
|
3 |
extensions: [php]
|
4 |
source:
|
5 |
-
-
|
6 |
exclude:
|
7 |
- vendor
|
8 |
- tests
|
9 |
- languages
|
10 |
|
11 |
charset: [UTF-8]
|
12 |
-
main:
|
13 |
-
title:
|
14 |
baseUrl: "/"
|
15 |
|
16 |
templateTheme: default
|
@@ -21,7 +21,7 @@ deprecated: false
|
|
21 |
todo: false
|
22 |
download: false
|
23 |
|
24 |
-
accessLevels:
|
25 |
- public
|
26 |
- private
|
27 |
-
- protected
|
2 |
templateConfig: /app/theme-woocommerce/config.neon
|
3 |
extensions: [php]
|
4 |
source:
|
5 |
+
- src
|
6 |
exclude:
|
7 |
- vendor
|
8 |
- tests
|
9 |
- languages
|
10 |
|
11 |
charset: [UTF-8]
|
12 |
+
main: Library wp-builder
|
13 |
+
title: Library that provides basic info how build a plugin and what a plugin is
|
14 |
baseUrl: "/"
|
15 |
|
16 |
templateTheme: default
|
21 |
todo: false
|
22 |
download: false
|
23 |
|
24 |
+
accessLevels:
|
25 |
- public
|
26 |
- private
|
27 |
+
- protected
|
vendor/wpdesk/wp-builder/composer.json
CHANGED
@@ -7,8 +7,7 @@
|
|
7 |
}
|
8 |
],
|
9 |
"require": {
|
10 |
-
"php": ">=5.5"
|
11 |
-
"wpdesk/wp-basic-requirements": "^2.0"
|
12 |
},
|
13 |
"require-dev": {
|
14 |
"phpunit/phpunit": "<7",
|
@@ -19,7 +18,8 @@
|
|
19 |
"wimg/php-compatibility": "^8"
|
20 |
},
|
21 |
"autoload": {
|
22 |
-
"psr-4": {"WPDesk\\PluginBuilder\\": "src/"}
|
|
|
23 |
},
|
24 |
"autoload-dev": {
|
25 |
},
|
7 |
}
|
8 |
],
|
9 |
"require": {
|
10 |
+
"php": ">=5.5"
|
|
|
11 |
},
|
12 |
"require-dev": {
|
13 |
"phpunit/phpunit": "<7",
|
18 |
"wimg/php-compatibility": "^8"
|
19 |
},
|
20 |
"autoload": {
|
21 |
+
"psr-4": {"WPDesk\\PluginBuilder\\": "src/"},
|
22 |
+
"classmap": ["src/Plugin/WithoutNamespace"]
|
23 |
},
|
24 |
"autoload-dev": {
|
25 |
},
|
vendor/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Buildable.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Have info about what class should be built by WPDesk_Builder
|
5 |
+
*
|
6 |
+
* have to be compatible with PHP 5.2.x
|
7 |
+
*/
|
8 |
+
interface WPDesk_Buildable {
|
9 |
+
/** @return string */
|
10 |
+
public function get_class_name();
|
11 |
+
}
|
vendor/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Has_Plugin_Info.php
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( ! interface_exists( 'WPDesk_Translatable' ) ) {
|
4 |
+
require_once __DIR__ . '/Translatable.php';
|
5 |
+
}
|
6 |
+
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Have MUST HAVE info for plugin instantion
|
10 |
+
*
|
11 |
+
* have to be compatible with PHP 5.2.x
|
12 |
+
*/
|
13 |
+
interface WPDesk_Has_Plugin_Info extends WPDesk_Translatable {
|
14 |
+
/**
|
15 |
+
* @return string
|
16 |
+
*/
|
17 |
+
public function get_plugin_file_name();
|
18 |
+
|
19 |
+
/**
|
20 |
+
* @return string
|
21 |
+
*/
|
22 |
+
public function get_plugin_dir();
|
23 |
+
|
24 |
+
/**
|
25 |
+
* @return string
|
26 |
+
*/
|
27 |
+
public function get_version();
|
28 |
+
|
29 |
+
}
|
vendor/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Plugin_Info.php
ADDED
@@ -0,0 +1,171 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( ! interface_exists( 'WPDesk_Translatable' ) ) {
|
4 |
+
require_once __DIR__ . '/Translatable.php';
|
5 |
+
}
|
6 |
+
if ( ! class_exists( 'WPDesk_Buildable' ) ) {
|
7 |
+
require_once __DIR__ . '/Buildable.php';
|
8 |
+
}
|
9 |
+
if ( ! class_exists( 'WPDesk_Has_Plugin_Info' ) ) {
|
10 |
+
require_once 'Has_Plugin_Info.php';
|
11 |
+
}
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Structure with core info about plugin
|
15 |
+
*
|
16 |
+
* have to be compatible with PHP 5.2.x
|
17 |
+
*/
|
18 |
+
class WPDesk_Plugin_Info implements WPDesk_Translatable, WPDesk_Buildable, WPDesk_Has_Plugin_Info {
|
19 |
+
/** @var string */
|
20 |
+
private $plugin_file_name;
|
21 |
+
|
22 |
+
/** @var string */
|
23 |
+
private $plugin_dir;
|
24 |
+
|
25 |
+
/** @var string */
|
26 |
+
private $plugin_url;
|
27 |
+
|
28 |
+
/** @var string */
|
29 |
+
private $class_name;
|
30 |
+
|
31 |
+
/** @var string */
|
32 |
+
private $version;
|
33 |
+
|
34 |
+
/** @var string */
|
35 |
+
private $product_id;
|
36 |
+
|
37 |
+
/** @var string */
|
38 |
+
private $plugin_name;
|
39 |
+
|
40 |
+
/** @var \DateTimeInterface */
|
41 |
+
private $release_date;
|
42 |
+
|
43 |
+
/** string */
|
44 |
+
private $text_domain;
|
45 |
+
|
46 |
+
/**
|
47 |
+
* @return string
|
48 |
+
*/
|
49 |
+
public function get_plugin_file_name() {
|
50 |
+
return $this->plugin_file_name;
|
51 |
+
}
|
52 |
+
|
53 |
+
/**
|
54 |
+
* @param string $plugin_name
|
55 |
+
*/
|
56 |
+
public function set_plugin_file_name( $plugin_name ) {
|
57 |
+
$this->plugin_file_name = $plugin_name;
|
58 |
+
}
|
59 |
+
|
60 |
+
/**
|
61 |
+
* @return string
|
62 |
+
*/
|
63 |
+
public function get_plugin_dir() {
|
64 |
+
return $this->plugin_dir;
|
65 |
+
}
|
66 |
+
|
67 |
+
/**
|
68 |
+
* @param string $plugin_dir
|
69 |
+
*/
|
70 |
+
public function set_plugin_dir( $plugin_dir ) {
|
71 |
+
$this->plugin_dir = $plugin_dir;
|
72 |
+
}
|
73 |
+
|
74 |
+
/**
|
75 |
+
* @return string
|
76 |
+
*/
|
77 |
+
public function get_plugin_url() {
|
78 |
+
return $this->plugin_url;
|
79 |
+
}
|
80 |
+
|
81 |
+
/**
|
82 |
+
* @param string $plugin_url
|
83 |
+
*/
|
84 |
+
public function set_plugin_url( $plugin_url ) {
|
85 |
+
$this->plugin_url = $plugin_url;
|
86 |
+
}
|
87 |
+
|
88 |
+
/**
|
89 |
+
* @return string
|
90 |
+
*/
|
91 |
+
public function get_version() {
|
92 |
+
return $this->version;
|
93 |
+
}
|
94 |
+
|
95 |
+
/**
|
96 |
+
* @param string $version
|
97 |
+
*/
|
98 |
+
public function set_version( $version ) {
|
99 |
+
$this->version = $version;
|
100 |
+
}
|
101 |
+
|
102 |
+
/**
|
103 |
+
* @return string
|
104 |
+
*/
|
105 |
+
public function get_product_id() {
|
106 |
+
return $this->product_id;
|
107 |
+
}
|
108 |
+
|
109 |
+
/**
|
110 |
+
* @param string $product_id
|
111 |
+
*/
|
112 |
+
public function set_product_id( $product_id ) {
|
113 |
+
$this->product_id = $product_id;
|
114 |
+
}
|
115 |
+
|
116 |
+
/**
|
117 |
+
* @return string
|
118 |
+
*/
|
119 |
+
public function get_plugin_name() {
|
120 |
+
return $this->plugin_name;
|
121 |
+
}
|
122 |
+
|
123 |
+
/**
|
124 |
+
* @param string $plugin_name
|
125 |
+
*/
|
126 |
+
public function set_plugin_name( $plugin_name ) {
|
127 |
+
$this->plugin_name = $plugin_name;
|
128 |
+
}
|
129 |
+
|
130 |
+
/**
|
131 |
+
* @return DateTimeInterface
|
132 |
+
*/
|
133 |
+
public function get_release_date() {
|
134 |
+
return $this->release_date;
|
135 |
+
}
|
136 |
+
|
137 |
+
/**
|
138 |
+
* @param \DateTimeInterface $release_date
|
139 |
+
*/
|
140 |
+
public function set_release_date( $release_date ) {
|
141 |
+
$this->release_date = $release_date;
|
142 |
+
}
|
143 |
+
|
144 |
+
/**
|
145 |
+
* @return string
|
146 |
+
*/
|
147 |
+
public function get_class_name() {
|
148 |
+
return $this->class_name;
|
149 |
+
}
|
150 |
+
|
151 |
+
/**
|
152 |
+
* @param string $class_name
|
153 |
+
*/
|
154 |
+
public function set_class_name( $class_name ) {
|
155 |
+
$this->class_name = $class_name;
|
156 |
+
}
|
157 |
+
|
158 |
+
/**
|
159 |
+
* @return string
|
160 |
+
*/
|
161 |
+
public function get_text_domain() {
|
162 |
+
return $this->text_domain;
|
163 |
+
}
|
164 |
+
|
165 |
+
/**
|
166 |
+
* @param $value
|
167 |
+
*/
|
168 |
+
public function set_text_domain( $value ) {
|
169 |
+
$this->text_domain = $value;
|
170 |
+
}
|
171 |
+
}
|
vendor/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Translable.php
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* @deprecated Have typo so better use WPDesk_Translatable
|
5 |
+
*/
|
6 |
+
interface WPDesk_Translable {
|
7 |
+
/** @return string */
|
8 |
+
public function get_text_domain();
|
9 |
+
}
|
vendor/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Translatable.php
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( ! interface_exists( 'WPDesk_Translable' ) ) {
|
4 |
+
require_once 'Translable.php';
|
5 |
+
}
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Have info about textdomain - how to translate texts
|
9 |
+
*
|
10 |
+
* have to be compatible with PHP 5.2.x
|
11 |
+
*/
|
12 |
+
interface WPDesk_Translatable extends WPDesk_Translable {
|
13 |
+
/** @return string */
|
14 |
+
public function get_text_domain();
|
15 |
+
}
|
vendor/wpdesk/wp-wpdesk-license/CHANGELOG.md
CHANGED
@@ -1,3 +1,7 @@
|
|
|
|
|
|
|
|
|
|
1 |
## [2.3.2] - 2019-08-09
|
2 |
### Fixed
|
3 |
- Notice type
|
1 |
+
## [2.4] - 2019-09-18
|
2 |
+
### Changed
|
3 |
+
- Basic classes moved to wp-builder
|
4 |
+
|
5 |
## [2.3.2] - 2019-08-09
|
6 |
### Fixed
|
7 |
- Notice type
|
vendor/wpdesk/wp-wpdesk-license/composer.json
CHANGED
@@ -10,7 +10,7 @@
|
|
10 |
"php": ">=5.6",
|
11 |
"ext-curl": "*",
|
12 |
"ext-json": "*",
|
13 |
-
"wpdesk/wp-
|
14 |
"wpdesk/wp-notice": "^3.0"
|
15 |
},
|
16 |
"require-dev": {
|
10 |
"php": ">=5.6",
|
11 |
"ext-curl": "*",
|
12 |
"ext-json": "*",
|
13 |
+
"wpdesk/wp-builder": "^1.3.1",
|
14 |
"wpdesk/wp-notice": "^3.0"
|
15 |
},
|
16 |
"require-dev": {
|