Deprecated: Creation of dynamic property wpdb::$categories is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/wp-db.php on line 668

Deprecated: Creation of dynamic property wpdb::$post2cat is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/wp-db.php on line 668

Deprecated: Creation of dynamic property wpdb::$link2cat is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/wp-db.php on line 668

Deprecated: Return type of WP_Theme::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/inovacao/public_html/yeapf.com/wp/wp-includes/class-wp-theme.php on line 554

Deprecated: Return type of WP_Theme::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/inovacao/public_html/yeapf.com/wp/wp-includes/class-wp-theme.php on line 595

Deprecated: Return type of WP_Theme::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/inovacao/public_html/yeapf.com/wp/wp-includes/class-wp-theme.php on line 535

Deprecated: Return type of WP_Theme::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/inovacao/public_html/yeapf.com/wp/wp-includes/class-wp-theme.php on line 544

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home/inovacao/public_html/yeapf.com/wp/wp-includes/comment-template.php on line 1745

Deprecated: wp_getimagesize(): Implicitly marking parameter $image_info as nullable is deprecated, the explicit nullable type must be used instead in /home/inovacao/public_html/yeapf.com/wp/wp-includes/media.php on line 5072

Deprecated: Return type of WP_REST_Request::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/inovacao/public_html/yeapf.com/wp/wp-includes/rest-api/class-wp-rest-request.php on line 960

Deprecated: Return type of WP_REST_Request::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/inovacao/public_html/yeapf.com/wp/wp-includes/rest-api/class-wp-rest-request.php on line 980

Deprecated: Return type of WP_REST_Request::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/inovacao/public_html/yeapf.com/wp/wp-includes/rest-api/class-wp-rest-request.php on line 992

Deprecated: Return type of WP_REST_Request::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/inovacao/public_html/yeapf.com/wp/wp-includes/rest-api/class-wp-rest-request.php on line 1003

Deprecated: Return type of WP_Block_List::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/inovacao/public_html/yeapf.com/wp/wp-includes/class-wp-block-list.php on line 151

Deprecated: Return type of WP_Block_List::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/inovacao/public_html/yeapf.com/wp/wp-includes/class-wp-block-list.php on line 175

Deprecated: Return type of WP_Block_List::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/inovacao/public_html/yeapf.com/wp/wp-includes/class-wp-block-list.php on line 164

Deprecated: Return type of WP_Block_List::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/inovacao/public_html/yeapf.com/wp/wp-includes/class-wp-block-list.php on line 186

Deprecated: Return type of WP_Block_List::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/inovacao/public_html/yeapf.com/wp/wp-includes/class-wp-block-list.php on line 138

Deprecated: Return type of WP_Block_List::offsetExists($index) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/inovacao/public_html/yeapf.com/wp/wp-includes/class-wp-block-list.php on line 75

Deprecated: Return type of WP_Block_List::offsetGet($index) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/inovacao/public_html/yeapf.com/wp/wp-includes/class-wp-block-list.php on line 89

Deprecated: Return type of WP_Block_List::offsetSet($index, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/inovacao/public_html/yeapf.com/wp/wp-includes/class-wp-block-list.php on line 110

Deprecated: Return type of WP_Block_List::offsetUnset($index) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/inovacao/public_html/yeapf.com/wp/wp-includes/class-wp-block-list.php on line 127

Deprecated: Return type of WP_Block_List::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/inovacao/public_html/yeapf.com/wp/wp-includes/class-wp-block-list.php on line 199

Deprecated: Jetpack::setup_xmlrpc_handlers(): Implicitly marking parameter $xmlrpc_server as nullable is deprecated, the explicit nullable type must be used instead in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/class.jetpack.php on line 934

Deprecated: Automattic\Jetpack\Connection\Manager::setup_xmlrpc_handlers(): Implicitly marking parameter $xmlrpc_server as nullable is deprecated, the explicit nullable type must be used instead in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/vendor/automattic/jetpack-connection/src/class-manager.php on line 123

Deprecated: Creation of dynamic property Automattic\Jetpack\Connection\Manager::$error_handler is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/vendor/automattic/jetpack-connection/src/class-manager.php on line 93

Deprecated: Creation of dynamic property WPCOM_REST_API_V2_Endpoint_Instagram_Gallery::$is_wpcom is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-instagram-gallery.php on line 23

Deprecated: Creation of dynamic property WPCOM_REST_API_V2_Endpoint_Mailchimp::$wpcom_is_wpcom_only_endpoint is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-mailchimp.php on line 17

Deprecated: Creation of dynamic property WPCOM_REST_API_V2_Endpoint_Tweetstorm_Gather::$wpcom_is_wpcom_only_endpoint is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-tweetstorm-gather.php on line 21

Deprecated: Creation of dynamic property WPCOM_REST_API_V2_Endpoint_Tweetstorm_Gather::$is_wpcom is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-tweetstorm-gather.php on line 22

Deprecated: Creation of dynamic property WPCOM_REST_API_V2_Endpoint_Gutenberg_Available_Extensions::$wpcom_is_site_specific_endpoint is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/gutenberg-available-extensions.php on line 20

Deprecated: Creation of dynamic property WPCOM_REST_API_V2_Endpoint_Memberships::$wpcom_is_wpcom_only_endpoint is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/memberships.php on line 23

Deprecated: Creation of dynamic property WPCOM_REST_API_V2_Endpoint_Memberships::$wpcom_is_site_specific_endpoint is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/memberships.php on line 24

Deprecated: Creation of dynamic property WPCOM_REST_API_V2_Endpoint_Subscribers::$wpcom_is_wpcom_only_endpoint is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/subscribers.php on line 15

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/extensions/blocks/podcast-player/podcast-player.php on line 160

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/extensions/blocks/podcast-player/podcast-player.php on line 160

Deprecated: Creation of dynamic property POMO_FileReader::$is_overloaded is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/pomo/streams.php on line 26

Deprecated: Creation of dynamic property POMO_FileReader::$_pos is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/pomo/streams.php on line 29

Deprecated: Creation of dynamic property POMO_FileReader::$_f is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/pomo/streams.php on line 160

Deprecated: Creation of dynamic property MO::$_gettext_select_plural_form is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/pomo/translations.php on line 293

Deprecated: Creation of dynamic property Automattic\Jetpack\Sync\Queue::$random_int is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/vendor/automattic/jetpack-sync/src/class-queue.php on line 38

Deprecated: Creation of dynamic property Automattic\Jetpack\Sync\Queue::$random_int is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/vendor/automattic/jetpack-sync/src/class-queue.php on line 38

Deprecated: Creation of dynamic property Publicize_UI::$in_jetpack is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/modules/publicize.php on line 53

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/modules/widgets/migrate-to-core/image-widget.php on line 195

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/modules/widgets/migrate-to-core/gallery-widget.php on line 56

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/modules/calypsoify/class-jetpack-calypsoify.php on line 130

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/modules/calypsoify/class-jetpack-calypsoify.php on line 131

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/modules/calypsoify/class-jetpack-calypsoify.php on line 135

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/modules/calypsoify/class-jetpack-calypsoify.php on line 136

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/modules/calypsoify/class-jetpack-calypsoify.php on line 137

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/modules/simple-payments/simple-payments.php on line 219

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/modules/simple-payments/simple-payments.php on line 220

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/modules/simple-payments/simple-payments.php on line 227

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/modules/simple-payments/simple-payments.php on line 229

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/modules/simple-payments/simple-payments.php on line 231

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/modules/simple-payments/simple-payments.php on line 248

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/modules/simple-payments/simple-payments.php on line 249

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/modules/simple-payments/simple-payments.php on line 267

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/modules/simple-payments/simple-payments.php on line 268

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/modules/simple-payments/simple-payments.php on line 270

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/modules/simple-payments/simple-payments.php on line 271

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/modules/simple-payments/simple-payments.php on line 273

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/modules/simple-payments/simple-payments.php on line 275

Deprecated: Creation of dynamic property POMO_FileReader::$is_overloaded is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/pomo/streams.php on line 26

Deprecated: Creation of dynamic property POMO_FileReader::$_pos is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/pomo/streams.php on line 29

Deprecated: Creation of dynamic property POMO_FileReader::$_f is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/pomo/streams.php on line 160

Deprecated: Creation of dynamic property MO::$_gettext_select_plural_form is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/pomo/translations.php on line 293

Deprecated: Creation of dynamic property WPCOM_Widget_Goodreads::$shelves is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/modules/widgets/goodreads.php on line 33

Deprecated: DateTime::__construct(): Passing null to parameter #1 ($datetime) of type string is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/script-loader.php on line 333

Deprecated: Creation of dynamic property WP_Block_Type::$skip_inner_blocks is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/class-wp-block-type.php on line 347

Deprecated: Creation of dynamic property WP_Block_Type::$plan_check is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/class-wp-block-type.php on line 347

Deprecated: Creation of dynamic property WP_Block_Type::$plan_check is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/class-wp-block-type.php on line 347

Deprecated: Creation of dynamic property WP_Block_Type::$plan_check is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/class-wp-block-type.php on line 347

Deprecated: Creation of dynamic property WP_Block_Type::$plan_check is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/class-wp-block-type.php on line 347

Deprecated: Creation of dynamic property WP_Block_Type::$plan_check is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/class-wp-block-type.php on line 347

Deprecated: Creation of dynamic property WP_Block_Type::$plan_check is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/class-wp-block-type.php on line 347

Deprecated: Creation of dynamic property WP_Block_Type::$plan_check is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/class-wp-block-type.php on line 347

Deprecated: Creation of dynamic property Jetpack_Shortcode_Unavailable::$shortcodes is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/modules/shortcodes/unavailable.php on line 19

Deprecated: Calling get_class() without arguments is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/class-http.php on line 328

Deprecated: Return type of Requests_Cookie_Jar::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/inovacao/public_html/yeapf.com/wp/wp-includes/Requests/Cookie/Jar.php on line 63

Deprecated: Return type of Requests_Cookie_Jar::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/inovacao/public_html/yeapf.com/wp/wp-includes/Requests/Cookie/Jar.php on line 73

Deprecated: Return type of Requests_Cookie_Jar::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/inovacao/public_html/yeapf.com/wp/wp-includes/Requests/Cookie/Jar.php on line 89

Deprecated: Return type of Requests_Cookie_Jar::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/inovacao/public_html/yeapf.com/wp/wp-includes/Requests/Cookie/Jar.php on line 102

Deprecated: Return type of Requests_Cookie_Jar::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/inovacao/public_html/yeapf.com/wp/wp-includes/Requests/Cookie/Jar.php on line 111

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/inovacao/public_html/yeapf.com/wp/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 40

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/inovacao/public_html/yeapf.com/wp/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 51

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/inovacao/public_html/yeapf.com/wp/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 68

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/inovacao/public_html/yeapf.com/wp/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 82

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/inovacao/public_html/yeapf.com/wp/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 91

Warning: Cannot modify header information - headers already sent by (output started at /home/inovacao/public_html/yeapf.com/wp/wp-includes/class-wp-block-list.php:14) in /home/inovacao/public_html/yeapf.com/wp/wp-includes/rest-api/class-wp-rest-server.php on line 1673

Warning: Cannot modify header information - headers already sent by (output started at /home/inovacao/public_html/yeapf.com/wp/wp-includes/class-wp-block-list.php:14) in /home/inovacao/public_html/yeapf.com/wp/wp-includes/rest-api/class-wp-rest-server.php on line 1673

Warning: Cannot modify header information - headers already sent by (output started at /home/inovacao/public_html/yeapf.com/wp/wp-includes/class-wp-block-list.php:14) in /home/inovacao/public_html/yeapf.com/wp/wp-includes/rest-api/class-wp-rest-server.php on line 1673

Warning: Cannot modify header information - headers already sent by (output started at /home/inovacao/public_html/yeapf.com/wp/wp-includes/class-wp-block-list.php:14) in /home/inovacao/public_html/yeapf.com/wp/wp-includes/rest-api/class-wp-rest-server.php on line 1673

Warning: Cannot modify header information - headers already sent by (output started at /home/inovacao/public_html/yeapf.com/wp/wp-includes/class-wp-block-list.php:14) in /home/inovacao/public_html/yeapf.com/wp/wp-includes/rest-api/class-wp-rest-server.php on line 1673

Warning: Cannot modify header information - headers already sent by (output started at /home/inovacao/public_html/yeapf.com/wp/wp-includes/class-wp-block-list.php:14) in /home/inovacao/public_html/yeapf.com/wp/wp-includes/rest-api/class-wp-rest-server.php on line 1673

Deprecated: ltrim(): Passing null to parameter #1 ($string) of type string is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/wp-db.php on line 3030

Deprecated: Creation of dynamic property Jetpack_Carousel::$localize_strings is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/modules/carousel/jetpack-carousel.php on line 353

Deprecated: ltrim(): Passing null to parameter #1 ($string) of type string is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/wp-db.php on line 3030

Deprecated: Calling get_class() without arguments is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/class-http.php on line 328

Deprecated: http_build_query(): Passing null to parameter #2 ($numeric_prefix) of type string is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/Requests/Transport/cURL.php on line 345

Deprecated: Requests_Cookie::parse_from_headers(): Implicitly marking parameter $origin as nullable is deprecated, the explicit nullable type must be used instead in /home/inovacao/public_html/yeapf.com/wp/wp-includes/Requests/Cookie.php on line 439

Deprecated: ltrim(): Passing null to parameter #1 ($string) of type string is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/wp-db.php on line 3030

Deprecated: Creation of dynamic property WP_Term::$cat_ID is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 378

Deprecated: Creation of dynamic property WP_Term::$category_count is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 379

Deprecated: Creation of dynamic property WP_Term::$category_description is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 380

Deprecated: Creation of dynamic property WP_Term::$cat_name is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 381

Deprecated: Creation of dynamic property WP_Term::$category_nicename is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 382

Deprecated: Creation of dynamic property WP_Term::$category_parent is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 383

Deprecated: Creation of dynamic property WP_Term::$cat_ID is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 378

Deprecated: Creation of dynamic property WP_Term::$category_count is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 379

Deprecated: Creation of dynamic property WP_Term::$category_description is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 380

Deprecated: Creation of dynamic property WP_Term::$cat_name is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 381

Deprecated: Creation of dynamic property WP_Term::$category_nicename is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 382

Deprecated: Creation of dynamic property WP_Term::$category_parent is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 383

Deprecated: preg_split(): Passing null to parameter #3 ($limit) of type int is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/_inc/lib/class.media-summary.php on line 420

Deprecated: preg_split(): Passing null to parameter #3 ($limit) of type int is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/_inc/lib/class.media-summary.php on line 420

Deprecated: preg_split(): Passing null to parameter #3 ($limit) of type int is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/_inc/lib/class.media-summary.php on line 420

Deprecated: Creation of dynamic property WP_Term::$cat_ID is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 378

Deprecated: Creation of dynamic property WP_Term::$category_count is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 379

Deprecated: Creation of dynamic property WP_Term::$category_description is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 380

Deprecated: Creation of dynamic property WP_Term::$cat_name is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 381

Deprecated: Creation of dynamic property WP_Term::$category_nicename is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 382

Deprecated: Creation of dynamic property WP_Term::$category_parent is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 383

Deprecated: Creation of dynamic property WP_Term::$cat_ID is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 378

Deprecated: Creation of dynamic property WP_Term::$category_count is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 379

Deprecated: Creation of dynamic property WP_Term::$category_description is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 380

Deprecated: Creation of dynamic property WP_Term::$cat_name is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 381

Deprecated: Creation of dynamic property WP_Term::$category_nicename is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 382

Deprecated: Creation of dynamic property WP_Term::$category_parent is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 383

Deprecated: preg_split(): Passing null to parameter #3 ($limit) of type int is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/_inc/lib/class.media-summary.php on line 420

Deprecated: preg_split(): Passing null to parameter #3 ($limit) of type int is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/_inc/lib/class.media-summary.php on line 420

Deprecated: preg_split(): Passing null to parameter #3 ($limit) of type int is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/_inc/lib/class.media-summary.php on line 420

Deprecated: Creation of dynamic property WP_Term::$cat_ID is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 378

Deprecated: Creation of dynamic property WP_Term::$category_count is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 379

Deprecated: Creation of dynamic property WP_Term::$category_description is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 380

Deprecated: Creation of dynamic property WP_Term::$cat_name is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 381

Deprecated: Creation of dynamic property WP_Term::$category_nicename is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 382

Deprecated: Creation of dynamic property WP_Term::$category_parent is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 383

Deprecated: Creation of dynamic property WP_Term::$cat_ID is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 378

Deprecated: Creation of dynamic property WP_Term::$category_count is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 379

Deprecated: Creation of dynamic property WP_Term::$category_description is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 380

Deprecated: Creation of dynamic property WP_Term::$cat_name is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 381

Deprecated: Creation of dynamic property WP_Term::$category_nicename is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 382

Deprecated: Creation of dynamic property WP_Term::$category_parent is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 383

Deprecated: preg_split(): Passing null to parameter #3 ($limit) of type int is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/_inc/lib/class.media-summary.php on line 420

Deprecated: preg_split(): Passing null to parameter #3 ($limit) of type int is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/_inc/lib/class.media-summary.php on line 420

Deprecated: preg_split(): Passing null to parameter #3 ($limit) of type int is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/_inc/lib/class.media-summary.php on line 420

Deprecated: Creation of dynamic property WP_Term::$cat_ID is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 378

Deprecated: Creation of dynamic property WP_Term::$category_count is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 379

Deprecated: Creation of dynamic property WP_Term::$category_description is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 380

Deprecated: Creation of dynamic property WP_Term::$cat_name is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 381

Deprecated: Creation of dynamic property WP_Term::$category_nicename is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 382

Deprecated: Creation of dynamic property WP_Term::$category_parent is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 383

Deprecated: Creation of dynamic property WP_Term::$cat_ID is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 378

Deprecated: Creation of dynamic property WP_Term::$category_count is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 379

Deprecated: Creation of dynamic property WP_Term::$category_description is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 380

Deprecated: Creation of dynamic property WP_Term::$cat_name is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 381

Deprecated: Creation of dynamic property WP_Term::$category_nicename is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 382

Deprecated: Creation of dynamic property WP_Term::$category_parent is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 383

Deprecated: ltrim(): Passing null to parameter #1 ($string) of type string is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/wp-db.php on line 3030

Deprecated: preg_split(): Passing null to parameter #3 ($limit) of type int is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/_inc/lib/class.media-summary.php on line 420

Deprecated: preg_split(): Passing null to parameter #3 ($limit) of type int is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/_inc/lib/class.media-summary.php on line 420

Deprecated: preg_split(): Passing null to parameter #3 ($limit) of type int is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/_inc/lib/class.media-summary.php on line 420

Deprecated: ltrim(): Passing null to parameter #1 ($string) of type string is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/wp-db.php on line 3030

Deprecated: ltrim(): Passing null to parameter #1 ($string) of type string is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/wp-db.php on line 3030

Deprecated: preg_split(): Passing null to parameter #3 ($limit) of type int is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/_inc/lib/class.media-summary.php on line 420

Deprecated: preg_split(): Passing null to parameter #3 ($limit) of type int is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/_inc/lib/class.media-summary.php on line 420

Deprecated: preg_split(): Passing null to parameter #3 ($limit) of type int is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/_inc/lib/class.media-summary.php on line 420

Deprecated: ltrim(): Passing null to parameter #1 ($string) of type string is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/wp-db.php on line 3030

Warning: Cannot modify header information - headers already sent by (output started at /home/inovacao/public_html/yeapf.com/wp/wp-includes/class-wp-block-list.php:14) in /home/inovacao/public_html/yeapf.com/wp/wp-includes/rest-api/class-wp-rest-server.php on line 1673

Warning: Cannot modify header information - headers already sent by (output started at /home/inovacao/public_html/yeapf.com/wp/wp-includes/class-wp-block-list.php:14) in /home/inovacao/public_html/yeapf.com/wp/wp-includes/rest-api/class-wp-rest-server.php on line 1673
{"id":25,"date":"2014-02-22T17:33:59","date_gmt":"2014-02-22T19:33:59","guid":{"rendered":"http:\/\/inovacaosistemas.com.br\/wp\/?p=25"},"modified":"2018-06-04T16:01:29","modified_gmt":"2018-06-04T18:01:29","slug":"primeiros-passos-com-yeapf","status":"publish","type":"post","link":"http:\/\/www.yeapf.com\/wp\/?p=25","title":{"rendered":"Primeiros passos com YeAPF"},"content":{"rendered":"

Tive oportunidade de ver minha irm\u00e3 mais nova andar sozinha pela primeira vez e nunca mais esqueci da experi\u00eancia. \u00a0Anos depois naceram os filhos e o impacto \u00e9 tremendo.<\/p>\n

Brinco com quem programa usando YeAPF de que s\u00e3o meus filhos, carinhosamente. Por isso que os primeiros passos s\u00e3o importantissimos para mim. \u00a0Tentarei resumir ent\u00e3o em poucos passos os primeiros a serem dados para botar o YeAPF para rodar que ser\u00e3o os seguintes: 1) Instala\u00e7\u00e3o dos pacotes b\u00e1sicos para que o YeAPF rode 2) Cria\u00e7\u00e3o de um banco de dados de testes 3) Instala\u00e7\u00e3o do YeAPF 4) Elabora\u00e7\u00e3o do seu primeiro aplicativo.\u00a0 Como um passo depende do outro, n\u00e3o avance se n\u00e3o conseguiu resolver o passo anterior.<\/p>\n

1) Instala\u00e7\u00e3o dos pacotes b\u00e1sicos<\/h2>\n

Para chegar a bom porto, este exemplo precisa que sua m\u00e1quina (Linux ou Windows) esteja com os seguintes pacotes instalados: apache2, php5, mysql-server e php5-mysql. \u00a0Ou resumindo: LAMP<\/p>\n

Em linux<\/span><\/strong> (no caso Ubuntu) a instala\u00e7\u00e3o \u00e9 simples:<\/p>\n

$ sudo apt-get install apache2 mysql-server php5 php5-mysql<\/strong><\/pre>\n

J\u00e1 em Windows<\/span><\/strong>, usamos UwAMP que pode ser obtido em\u00a0http:\/\/www.uwamp.com\/en\/<\/a><\/p>\n

Seja l\u00e1 como for, o importante \u00e9 voc\u00ea saber qual \u00e9 sua pasta base de desenvolvimento.\u00a0 No caso de uma instala\u00e7\u00e3o t\u00edpica Ubuntu\/Debian esta pasta est\u00e1 em \/var\/www<\/strong>.\u00a0 J\u00e1 se instalou em CentOS\/RHEL\/Fedora esta mesma pasta se chama \/var\/www\/html<\/strong> e, finalmente, se usou UwAMP e instalou em C:\\UwAMP, ent\u00e3o sua pasta base ser\u00e1 C:\\UwAMP\\www<\/strong>.\u00a0\u00a0 Imagino que se est\u00e1 lendo isto, ter\u00e1 suficiente estrutura como para achar por pr\u00f3prias m\u00e3os onde est\u00e1 sua pasta base.\u00a0 Para facilitar a escrita deste blog, assumirei uma instala\u00e7\u00e3o em Ubuntu cuja pasta base \u00e9 \/var\/www<\/strong>.\u00a0 Ajuste para o seu caso particular.<\/p>\n

Para editarmos o c\u00f3digo fonte usamos Geany<\/a> que roda tanto em Windows como em Linux, por\u00e9m, em Windows alguns preferem Notepad++<\/a> que \u00e9 uma outra excelente op\u00e7\u00e3o.\u00a0 Ah, sim, n\u00e3o usamos NetBeans<\/a>, Eclipse<\/a>, etc..\u00a0 Sim, nem para depurar.\u00a0 Todavia, temos nossos olhos postos em WebStorm<\/a> caso queira saber se somos loucos escovadores de bits.<\/p>\n

2) Cria\u00e7\u00e3o de um banco de dados de testes<\/h2>\n

Como n\u00e3o \u00e9 o foco deste blog falar sobre seguran\u00e7a de banco de dados, assumirei que estaremos usando o usu\u00e1rio ‘root<\/strong>‘ com a senha ‘abc123<\/strong>‘\u00a0 definida durante a instala\u00e7\u00e3o. Mais uma vez, fa\u00e7a os ajustes necess\u00e1rios para o seu caso durante a leitura.\u00a0 E n\u00e3o confunda o usu\u00e1rio root<\/em> da sua caixa Linux<\/em> com o usu\u00e1rio root<\/em> do mysql.<\/p>\n

Cabe esclarecer que se voc\u00ea estiver testando em um servidor alugado, seu nome de acesso, senha e IP de conex\u00e3o ser\u00e3o definidos pelo administrador do servidor ou por voc\u00ea mesmo usando as ferramentas que seu hospedeiro lhe disponibilize.<\/p>\n

Fa\u00e7a download do banco de dados de demonstra\u00e7\u00e3o clicando aqui<\/a> e crie um banco de testes no seu servidor mysql instalado logo acima.<\/p>\n

Caso esteja usando Linux, os seguintes passos (grifados em negrito para facilitar a compreens\u00e3o) devem ser suficientes.\u00a0 Lembre que estamos pensando em uma distribui\u00e7\u00e3o Ubuntu\/Debian em que os downloads caem na pasta do usu\u00e1rio chamada Downloads <\/em>(com a primeira ‘D’ em maiusculas).\u00a0 Se estiver usando CentOS\/RHEL a pasta chamar-se-ia downloads<\/em>.\u00a0 Para os recem iniciados, lembre de dar um enter ap\u00f3s cada comando, o $<\/em> \u00e9 o s\u00edmbolo do sistema (que pode ser diferente na sua distribui\u00e7\u00e3o) e ele \u00e9 sens\u00edvel \u00e0s minusculas, maiusculas.<\/p>\n

Para quem est\u00e1 fazendo com Windows e instalou UwAMP, pode conectar-se ao banco de dados por meio do console (Iniciar | Executar | cmd) da seguinte forma:<\/p>\n

C:\\Users\\Pepe> cd c:\\UwAMP\\bin\\database\\mysql-5.6.11\\bin<\/strong>\r\nC:\\UwAMP\\bin\\database\\mysql-5.6.11\\bin> mysql -u root -proot<\/strong><\/pre>\n

(Observe que n\u00e3o h\u00e1 espa\u00e7o entre o par\u00e2metro ‘-p’ e a senha ‘root’. \u00a0Em tempo, a senha padr\u00e3o que o UwAMP faz para o mysql \u00e9 root<\/strong>) <\/em><\/p>\n

A partir dai os passos s\u00e3o os mesmos que para um usu\u00e1rio Linux como se detalham a continua\u00e7\u00e3o:<\/p>\n

$ mysql -u root -pabc123<\/strong>\r\nWelcome to the MySQL monitor.\u00a0 Commands end with ; or \\g.\r\nYour MySQL connection id is 747\r\nServer version: 5.5.34-0ubuntu0.13.04.1 (Ubuntu)\r\n\r\nCopyright (c) 2000, 2013, Oracle and\/or its affiliates. All rights reserved.\r\n\r\nOracle is a registered trademark of Oracle Corporation and\/or its\r\naffiliates. Other names may be trademarks of their respective\r\nowners.\r\n\r\nType 'help;' or '\\h' for help. Type '\\c' to clear the current input statement.\r\n\r\nmysql> create database testes;<\/strong>\r\nQuery OK, 1 row affected (0.00 sec)\r\n\r\nmysql> grant all on testes.* to pepe@localhost identified by 'abc123';<\/strong>\r\n\r\nmysql> exit<\/strong>\r\nBye<\/pre>\n
$ cd<\/strong>\r\n$ unzip Downloads\/baseTestes.zip\r\n<\/strong>$ mysql -u pepe -pabc123 testes < baseTestes.sql<\/strong> \r\n<\/pre>\n

Uma mensagem de advert\u00eancia do mysql dizendo que \u00e9 inseguro colocar a senha na linha de comando \u00e9 comum na execu\u00e7\u00e3o deste \u00faltimo comando<\/p>\n

Caso n\u00e3o tenha instalado o unzip<\/em>\u00a0no linux ent\u00e3o, instale ele com<\/p>\n

$ sudo apt-get install zip unzip<\/strong><\/pre>\n

Repare que nos comandos mysql h\u00e1 um espa\u00e7o entre o par\u00e2metro e a op\u00e7\u00e3o do par\u00e2metro como em -u root<\/em>. A exce\u00e7\u00e3o \u00e9 quando estamos indicando a senha como em -pabc123<\/em>.\u00a0 Lembre, contudo, de substituir abc123 pela senha que voc\u00ea colocou na hora da instala\u00e7\u00e3o no seu mysql.<\/p>\n

Como sempre, o exemplo j\u00e1 \u00e9 simples o suficiente para evitar o degradante copiar e colar de muitos hoje em dia.\u00a0 Ent\u00e3o gaste um pouco mais do seu tempo e fixe os comandos na sua cachola digitando eles.<\/p>\n

Todavia, se chegou at\u00e9 aqui, uma boa recompensa \u00e9 lhe indicar que instalando phpMyAdmin<\/a>\u00a0a gest\u00e3o do banco fica bem mais f\u00e1cil tanto em Linux quanto em Windows. \u00a0Para Windows, a melhor recomenda\u00e7\u00e3o \u00e9 HeidiSQL<\/a><\/p>\n

3) Instala\u00e7\u00e3o do YeAPF<\/h2>\n

Fa\u00e7a download da \u00faltima vers\u00e3o do YeAPF.\u00a0 Na hora de escrever este blog, estamos na vers\u00e3o 0.8.25<\/a>. Mas o exemplo aqui entregue deve funcionar bem desde a vers\u00e3o 0.8.0 em diante.<\/p>\n

Descompacte o conte\u00fado do arquivo para uma pasta sob a sua pasta base.\u00a0 Costumamos colocar o YeAPF sob \/var\/www\/YeAPF\/<\/strong> nos Ubuntu\/Debian mas nada impede de colocar ele em outra pasta da sua preferencia, inclusive em uma subpasta de um projeto YeAPF.\u00a0 (\u00e9.. o pr\u00f3prio framework<\/em> embarcado na pr\u00f3pria pasta do aplicativo… ainda n\u00e3o viu nada meu chapa). \u00a0Por\u00e9m, por hora, deixe ele na pasta padr\u00e3o\u00a0\/var\/www\/YeAPF<\/strong> se estiver em Ubuntu ou\u00a0C:\\UwAMP\\www\\YeAPF <\/strong>se estiver usando Windows
\n<\/span><\/p>\n

Em Ubuntu\/Debian ficaria assim:<\/p>\n

$ cd \/tmp<\/strong>\r\n$ wget http:\/\/www.inovacaosistemas.com.br\/downloads\/YeAPF\/YeAPF-0.8.25.zip<\/strong>\r\n$ mkdir -p \/var\/www\/YeAPF<\/strong>\r\n$ cd \/var\/www\/YeAPF<\/strong>\r\n$ unzip \/tmp\/YeAPF-0.8.25.zip<\/strong><\/pre>\n

Voc\u00ea ter\u00e1 certeza de que o YeAPF est\u00e1 no local correto se o arquivo xYApp.js<\/em> est\u00e1 na pasta que voc\u00ea tenciona usar.<\/p>\n

A turma do arrastar e soltar j\u00e1 se vira sozinha para soltar os arquivos no local certo.<\/p>\n

Como esta pasta ser\u00e1 de s\u00f3 leitura, n\u00e3o h\u00e1 necessidade de corrigir os direitos da pasta.\u00a0 De qualquer forma, vale o aviso para manter a amizade de que \u00e0s vezes precisamos entregar a pasta inteira (arquivos, sub pastas) para o apache2 controlar.<\/p>\n

Isto feito, seu YeAPF est\u00e1 pronto para ser usado.\u00a0 Vale destacar que o procedimento se o seu servidor \u00e9 local ou remoto, se for acess\u00edvel por ssh, console local ou ftp,\u00a0 \u00e9 similar.\u00a0 J\u00e1 se quiser instalar as ferramentas do YeAPF o procedimento \u00e9 um pouco diferente mas nada que provoque taquicardia.<\/p>\n

4) Elabora\u00e7\u00e3o do seu primeiro aplicativo<\/h2>\n

Ufa!… At\u00e9 que enfim.\u00a0 Neste primeiro momento, faremos uma coisa muito simples, que \u00e9 mostrar o conte\u00fado da tabela autores<\/em> que est\u00e1 no banco de testes.\u00a0 O faremos usando o modelo preprocessado que \u00e9 aquele que ensambla <\/a>os dados e a visualiza\u00e7\u00e3o no servidor antes de envi\u00e1-los para o cliente.\u00a0 YeAPF tamb\u00e9m faz p\u00f3s-processado e MVC mas isso \u00e9 farinha de outro saco.<\/p>\n

Seguiremos os seguintes passos: a) Cria\u00e7\u00e3o da pasta para conter meu aplicativo b) Configura\u00e7\u00e3o da conex\u00e3o com o banco de dados c) Elabora\u00e7\u00e3o dos dois arquivos que comp\u00f5em meu aplicativo<\/p>\n

4.a) Cria\u00e7\u00e3o da pasta para conter meu aplicativo<\/h3>\n

Digamos que seu aplicativo vai se chamar meuPrimeiroApp<\/em>, ent\u00e3o precisamos criar uma pasta sob a pasta base do apache<\/p>\n

$ mkdir \/var\/www\/meuPrimeiroApp<\/strong><\/pre>\n

Isso far\u00e1 com que quando voc\u00ea navegar usando seu navegador preferido (que pode ser escolhido do conjunto finito: Mozilla, Safari, Chrome, nessa ordem) poder\u00e1 visualizar o conte\u00fado da pasta com http:\/\/localhost\/meuPrimeiroApp<\/a>. E qualquer arquivo que voc\u00ea colocar na pasta, aparecer\u00e1 na navega\u00e7\u00e3o.<\/p>\n

Para facilitar o desenvolvimento, reduziremos o n\u00edvel de seguran\u00e7a da pasta, por\u00e9m, mais uma vez, vale dizer que este n\u00e3o \u00e9 um blog orientado \u00e0 seguran\u00e7a.\u00a0 Quando chegue o momento, falaremos disso.<\/p>\n

$ chmod 0777 -fR \/var\/www\/meuPrimeiroApp<\/strong><\/pre>\n

Agora vamos copiar dois arquivos (configure.php<\/em> e yeapf.db.ini<\/em>) para dentro da pasta.\u00a0 Isso \u00e9 tudo o que vamos precisar para que o YeAPF rode certinho.<\/p>\n

$ cd \/var\/www\/meuPrimeiroApp\r\n<\/strong>$ cp \/var\/www\/YeAPF\/appSkeleton\/configure.php .<\/strong>\r\n$ cp \/var\/www\/YeAPF\/appSkeleton\/yeapf.db.ini<\/strong> .<\/pre>\n

Nota para YeAPF 0.8.5x<\/strong>:\u00a0<\/em>Indique ao configure.php onde localizar o YeAPF. Para isso, use o arquivo search.path ou yeapf.path no mesmo n\u00edvel que o configure.php. Neste exemplo, esse arquivo conter\u00e1 uma linha dizendo apenas: “..\/YeAPF”<\/p><\/blockquote>\n

4.b) Configura\u00e7\u00e3o da conex\u00e3o com o banco de dados<\/h3>\n

Antes de rodar o configure.php<\/em>, altere os seguintes valores no yeapf.db.ini<\/em><\/p>\n

dbType=mysql<\/strong>\r\ndbServer=localhost<\/strong>\r\ndbName=testes<\/strong>\r\ndbUser=pepe<\/strong>\r\ndbPassword=abc123<\/strong>\r\ndbConnect=yes<\/strong><\/pre>\n

Lembre que os valores aqui colocados tem a ver com o restante do exemplo.\u00a0 Ou seja, se seu banco n\u00e3o for mysql, ou n\u00e3o estiver no mesmo em que o apache est\u00e1 ou n\u00e3o se chamar testes ou n\u00e3o usar pepe\/abc123 para conectar, voc\u00ea dever\u00e1 fazer as altera\u00e7\u00f5es necess\u00e1rias<\/p>\n

\"\"<\/a>Caso esteja usando Windows, crie uma pasta chamada “.config<\/em>” sob sua pasta “meuPrimeiroApp<\/em>“. \u00a0Dentro desta pasta “.config<\/em>“, crie um arquivo texto chamado “lock_version<\/em>” contendo “1”. \u00a0Por padr\u00e3o YeAPF tenta usar mem\u00f3ria compartilhada para as travas de concorr\u00eancia. \u00a0A n\u00e3o ser que esteja usando um NT (2003, 2008, …) seu sistema operacional n\u00e3o suporta bem mem\u00f3ria compartilhada no PHP. \u00a0Esse “1” no “.config\/lock_version<\/em>” for\u00e7a a usar arquivos tempor\u00e1rios.<\/p>\n

Ap\u00f3s feito isso, rode o configure usando seu navegador acessando http:\/\/localhost\/meuPrimeiroApp\/configure.php<\/a><\/p>\n

Se tudo deu certo, voc\u00ea ver\u00e1 uma tela com uma tarja verde dizendo que est\u00e1 tudo ok.\u00a0 Na sua pasta agora ter\u00e3o sido criadas mais algumas pastas e arquivos auxiliares.\u00a0 \u00c9 de especial import\u00e2ncia o sgug.ini<\/em> que \u00e9 o que controla a conex\u00e3o com o banco de dados.\u00a0 yeapf.db.ini<\/em> j\u00e1 pode ser apagado.<\/p>\n

4.c) Elabora\u00e7\u00e3o dos dois arquivos que comp\u00f5em meu aplicativo<\/h3>\n

Agora vamos ao que interessa (s\u00f3 agora!?)\u00a0 Vamos r\u00e1pido ent\u00e3o.<\/p>\n

Crie um arquivo chamado listarAutores.php<\/em> com o seguinte conte\u00fado<\/p>\n

<?php\r\n  include_once \"yeapf.php\";\r\n  processFile(\"i_autores\");\r\n?><\/pre>\n

Agora crie um arquivo chamado i_autores.html<\/em> com o seguinte:<\/p>\n

<html>\r\n  <table>\r\n    #for(\"SELECT a.*, u.nome as nomeUF\r\n          FROM autores a \r\n               left join ufs u \r\n               on u.uf=a.ufNascimento \r\n          order by nome\")\r\n      <tr>\r\n        <td>#(nome)<br><small>#date(dataNascimento) - \r\n            #date(dataFalecimento)<\/small><\/td>\r\n        <td>#(localNascimento) #(nomeUF)<\/td>\r\n        <td>#(estiloPrincipal)<\/td>\r\n      <\/tr>\r\n    #next\r\n  <\/table>\r\n<\/html><\/pre>\n

 <\/p>\n

Pronto, rode seu aplicativo http:\/\/localhost\/meuPrimeiroApp\/listarAutores.php<\/a><\/p>\n

Mais claro do que isso, s\u00f3 jogando \u00e1gua. Uma das claras vantagens do paradigma proposto por YeAPF em que a l\u00f3gica \u00e9 separada do ensamblado dos dados \u00e9 que o c\u00f3digo se torna -em grande medida- autoexplicativo.<\/p>\n

 <\/p>\n","protected":false},"excerpt":{"rendered":"

Tive oportunidade de ver minha irm\u00e3 mais nova andar sozinha pela primeira vez e nunca mais esqueci da experi\u00eancia. \u00a0Anos depois naceram os filhos e o impacto \u00e9 tremendo. Brinco com quem programa usando YeAPF de que s\u00e3o meus filhos, carinhosamente. Por isso que os primeiros passos s\u00e3o importantissimos para mim. \u00a0Tentarei resumir ent\u00e3o em […]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false},"categories":[8],"tags":[],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5O6UV-p","jetpack-related-posts":[{"id":288,"url":"http:\/\/www.yeapf.com\/wp\/?p=288","url_meta":{"origin":25,"position":0},"title":"Um ambiente de desenvolvimento YeAPF usando Windows","date":"mar\u00e7o 28, 2016","format":false,"excerpt":"Quase que todas as vezes que postamos alguma coisa o fazemos tomando como base uma instala\u00e7\u00e3o Linux. Por\u00e9m, na medida em que alguns novos usu\u00e1rios est\u00e3o ainda usando Windows, se torna necess\u00e1rio um pequeno roteiro para facilitar a vida. Escrevemos estas linhas tomando como base uma instala\u00e7\u00e3o sobre XP (Obvio\u2026","rel":"","context":"Em "Desenvolvimento"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":328,"url":"http:\/\/www.yeapf.com\/wp\/?p=328","url_meta":{"origin":25,"position":1},"title":"Criando um aplicativo YeAPF usando a linha de comandos","date":"janeiro 31, 2017","format":false,"excerpt":"Um aplicativo YeAPF pode ser criado de forma simples copiando manualmente o conteudo do esqueleto apropriado dentro da pasta do seu aplicativo. Por\u00e9m, devemos reconhecer que \u00e9 um processo muito artesanal. YeAPF pode ser instalado como um conjunto de ferramentas desde a vers\u00e3o 0.7.x e entre as ferramentas h\u00e1 uma\u2026","rel":"","context":"Em "Desenvolvimento"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":91,"url":"http:\/\/www.yeapf.com\/wp\/?p=91","url_meta":{"origin":25,"position":2},"title":"Aplicativos mono p\u00e1gina","date":"mar\u00e7o 14, 2014","format":false,"excerpt":"Aplicativos que usam s\u00f3 uma p\u00e1gina t\u00eam um lugar assegurado no desenvolvimento de software atual e futuro. Bem feitos s\u00e3o elegantes e f\u00e1ceis de manter. Tamb\u00e9m s\u00e3o uma m\u00e3o na roda na hora de fazer um aplicativo que funcione tanto em desktop como em mobile. Para construirmos um aplicativo com\u2026","rel":"","context":"Em "Desenvolvimento"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":184,"url":"http:\/\/www.yeapf.com\/wp\/?p=184","url_meta":{"origin":25,"position":3},"title":"Exemplo - web01 - OnePage YeAPF Web Application","date":"dezembro 26, 2014","format":false,"excerpt":"Esta \u00e9 uma das continua\u00e7\u00f5es deste artigo. Por que criar aplicativos mono p\u00e1gina? Bom, a grande virtude de um aplicativo mono p\u00e1gina \u00e9 que tudo o que voc\u00ea precisar est\u00e1 pronto assim que o usu\u00e1rio carregou a p\u00e1gina inicial e caso sejam necess\u00e1rias mais p\u00e1ginas, formul\u00e1rios, tabelas elas tamb\u00e9m podem\u2026","rel":"","context":"Em "Desenvolvimento"","img":{"alt_text":"","src":"https:\/\/i2.wp.com\/www.yeapf.com\/wp\/wp-content\/uploads\/2019\/05\/office-932926_1920.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":5,"url":"http:\/\/www.yeapf.com\/wp\/?p=5","url_meta":{"origin":25,"position":4},"title":"Migrando bancos de dados com ydbmigrate","date":"janeiro 10, 2014","format":false,"excerpt":"Desenvolver um aplicativo implica em ter um bom banco de dados, mas responder rapidamente a uma migra\u00e7\u00e3o estrutural \u00e9 mais um pesadelo do que uma noite bem dormida. Dentre as ferramentas que o YeAPF disp\u00f5e se encontra o ydbmigrate. Esta ferramenta nos permite exportar e importar dados de varias fontes\u2026","rel":"","context":"Em \"firebird\"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":39,"url":"http:\/\/www.yeapf.com\/wp\/?p=39","url_meta":{"origin":25,"position":5},"title":"Ajax com YeAPF","date":"mar\u00e7o 3, 2014","format":false,"excerpt":"Pretendo deixar cada uma das postagens o mais simples poss\u00edvel.\u00a0 Mas, n\u00e3o \u00e9 poss\u00edvel proceder com este se antes voc\u00ea n\u00e3o instalou e configurou seu ambiente de desenvolvimento e o YeAPF.\u00a0 Este post (http:\/\/inovacaosistemas.com.br\/wp\/?p=25) lhe pode ajudar a fazer isso, caso n\u00e3o o tenha feito ainda. Introdu\u00e7\u00e3o Nos prim\u00f3rdios da\u2026","rel":"","context":"Post similar","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/25"}],"collection":[{"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=25"}],"version-history":[{"count":33,"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/25\/revisions"}],"predecessor-version":[{"id":410,"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/25\/revisions\/410"}],"wp:attachment":[{"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=25"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=25"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=25"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}