1) Wordpress can be developed using Composer for dependency management and installing plugins/themes. Custom installers allow installing packages outside the vendor directory.
2) Wordpress Core can be included as a dependency and installed to a custom directory. The composer/installers library installs plugins/themes to standard Wordpress locations.
3) WP-CLI provides a command line interface for Wordpress tasks like installation, updates, and plugin/theme management. Automated testing helps ensure high quality code.
Automatic testing and quality assurance for WordPress plugins and themesOtto Kekäläinen
Talk given at WP Helsinki Meetup 7.11.2018
See also:
* https://developer.wordpress.org/themes
* https://developer.wordpress.org/plugins
* https://travis-ci.org/Seravo
* https://seravo.com/blog/coding-wordpress-in-style-with-phpcs/
An introduction to creating your own website (or blog) using WordPress. At the end of this series you should have an understanding of how WordPress works and be able to create a basic site.
Originally presented at the Ottawa WordPress Group meetup. wpottawa.org
How to improve your workflows via SSH gateway. Experts at WP Engine help you learn about how WordPress developers can make their work more efficient using WP-CLI via SSH gateway to improve workflows.
On-demand webinar: https://hs.wpengine.com/webinar-improve-workflows-SSH-gateway
Automatic testing and quality assurance for WordPress plugins and themesOtto Kekäläinen
Talk given at WP Helsinki Meetup 7.11.2018
See also:
* https://developer.wordpress.org/themes
* https://developer.wordpress.org/plugins
* https://travis-ci.org/Seravo
* https://seravo.com/blog/coding-wordpress-in-style-with-phpcs/
An introduction to creating your own website (or blog) using WordPress. At the end of this series you should have an understanding of how WordPress works and be able to create a basic site.
Originally presented at the Ottawa WordPress Group meetup. wpottawa.org
How to improve your workflows via SSH gateway. Experts at WP Engine help you learn about how WordPress developers can make their work more efficient using WP-CLI via SSH gateway to improve workflows.
On-demand webinar: https://hs.wpengine.com/webinar-improve-workflows-SSH-gateway
Brad Williams, the co-author of Professional WordPress Plugin Development, gives his presentation on Intro to WordPress Plugin Development to the NYC WordPress Meetup group in March 2011.
Composer is a command line dependency management tool designed for PHP. Come learn how Composer can help you:
- Simplify new project creation
- Minimize duplication of code in your project repositories
- Quickly install and update plugins and themes in bulk
- Manage versioning within your project
- Follow best practices when managing code for your projects
http://wpscholar.com/wcraleigh2014
Versão com GIFs:
https://docs.google.com/presentation/d/17M-jHlkAP5KPfQ4_Alck_wIsN2gK3dZNGfJR9Bi1L50/present
Códigos para instalação das dependências:
https://github.com/fdaciuk/talks/tree/master/2015/wordcamp-sao-paulo
Why it's dangerous to turn off automatic updates and here's how to do itOnni Hakala
This was my presentation for WordCamp Helsinki 2017. It's about the default automatic updater in WordPress and how that can be enhanced using CI instead.
WordPress Plugin Development- Rich Media Institute WorkshopBrendan Sera-Shriar
“Plug-ins can extend WordPress to do almost anything you can imagine.” In this workshop we will cover the following areas, Extending WordPress, Customizing WordPress Plug-ins, Tips On Writing WordPress Plug-ins, Writing WordPress Plug-ins, and Essential WordPress Plug-ins. Plus, that isn’t enough, we will build a simple Flash plug-in by the end of the workshop that you can take with you!"
Exploring the power and benefits of using WordPress plugins, how to build a WordPress plugin in a few simple steps, plus a good solid list of plugin resources.
Brad Williams, the co-author of Professional WordPress Plugin Development, gives his presentation on Intro to WordPress Plugin Development to the NYC WordPress Meetup group in March 2011.
Composer is a command line dependency management tool designed for PHP. Come learn how Composer can help you:
- Simplify new project creation
- Minimize duplication of code in your project repositories
- Quickly install and update plugins and themes in bulk
- Manage versioning within your project
- Follow best practices when managing code for your projects
http://wpscholar.com/wcraleigh2014
Versão com GIFs:
https://docs.google.com/presentation/d/17M-jHlkAP5KPfQ4_Alck_wIsN2gK3dZNGfJR9Bi1L50/present
Códigos para instalação das dependências:
https://github.com/fdaciuk/talks/tree/master/2015/wordcamp-sao-paulo
Why it's dangerous to turn off automatic updates and here's how to do itOnni Hakala
This was my presentation for WordCamp Helsinki 2017. It's about the default automatic updater in WordPress and how that can be enhanced using CI instead.
WordPress Plugin Development- Rich Media Institute WorkshopBrendan Sera-Shriar
“Plug-ins can extend WordPress to do almost anything you can imagine.” In this workshop we will cover the following areas, Extending WordPress, Customizing WordPress Plug-ins, Tips On Writing WordPress Plug-ins, Writing WordPress Plug-ins, and Essential WordPress Plug-ins. Plus, that isn’t enough, we will build a simple Flash plug-in by the end of the workshop that you can take with you!"
Exploring the power and benefits of using WordPress plugins, how to build a WordPress plugin in a few simple steps, plus a good solid list of plugin resources.
Take Command of WordPress With WP-CLI at WordCamp Long BeachDiana Thompson
WP-CLI is the official command line tool for interacting with and managing your WordPress sites. Learn to use it to speed up maintenance and deployment tasks, and to aid in theme and plugin development.
Presented at WordCamp Malaysia 2010.
Slideshare also does not resize my cropped images properly, thus resulting in squished images. This is noticeable on my squished code.
A soup to nuts presentation on using Composer and repository servers to manage and leverage shared code libraries for personal projects to the largest enterprise.
WP-CLI is the official command line tool for interacting with and managing your WordPress sites. Learn to use it to speed up maintenance and deployment tasks, and to aid in theme and plugin development.
WP-CLI is the official command line tool for interacting with and managing your WordPress sites. Learn to use it to speed up maintenance and deployment tasks, and to aid in theme and plugin development.
Managing a WordPress Site as a Composer Project by Rahul Bansal @ WordCamp Na...rtCamp
This presentation explains the advantages of using Composer dependency manager to manage complete WordPress projects, including themes, plugins and WordPress core itself.
This method makes developing, maintaining & scaling WordPress sites in a long run easy.
Abstract: Composer is a tool for managing dependencies in PHP projects. This talk will introduce Composer and its associated package repository Packagist. The key features and benefits of using Composer will be explored and through practical demonstrations you will gain a working knowledge of using Composer for dependency management.
Adam has authored CodeIgniter 1.7 Professional Development; the first advanced CodeIgniter book, gives an overview of what's new with CodeIgniter 2.0, how to upgrade your applications and a detailed overview of how to create drivers.
Pantheon's Greg Anderson presents on the topic of using Composer with Drupal and Drush. Composer is a dependency manager that has become the de-facto standard for managing the components used in any sort of PHP library or application. Drupal is no exception to this, and in this presentation, Greg showed that the future is already here: it is completely possible to use native Composer functions to manage the modules and themes used in a Drupal site. In this capacity, Composer can take over the functions usually performed with drush make, drush pm-download, and drush pm-update.
Similar to Wordpress development: A Modern Approach (20)
Advanced Flow Concepts Every Developer Should KnowPeter Caitens
Tim Combridge from Sensible Giraffe and Salesforce Ben presents some important tips that all developers should know when dealing with Flows in Salesforce.
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
Keep tabs on your field staff effortlessly with Informap Technology Centre LLC. Real-time tracking, task assignment, and smart features for efficient management. Request a live demo today!
For more details, visit us : https://informapuae.com/field-staff-tracking/
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
Even though at surface level ‘java.lang.OutOfMemoryError’ appears as one single error; underlyingly there are 9 types of OutOfMemoryError. Each type of OutOfMemoryError has different causes, diagnosis approaches and solutions. This session equips you with the knowledge, tools, and techniques needed to troubleshoot and conquer OutOfMemoryError in all its forms, ensuring smoother, more efficient Java applications.
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
Into the Box Keynote Day 2: Unveiling amazing updates and announcements for modern CFML developers! Get ready for exciting releases and updates on Ortus tools and products. Stay tuned for cutting-edge innovations designed to boost your productivity.
Modern design is crucial in today's digital environment, and this is especially true for SharePoint intranets. The design of these digital hubs is critical to user engagement and productivity enhancement. They are the cornerstone of internal collaboration and interaction within enterprises.
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
Software Engineering, Software Consulting, Tech Lead.
Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Security,
Spring Transaction, Spring MVC,
Log4j, REST/SOAP WEB-SERVICES.
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?XfilesPro
Worried about document security while sharing them in Salesforce? Fret no more! Here are the top-notch security standards XfilesPro upholds to ensure strong security for your Salesforce documents while sharing with internal or external people.
To learn more, read the blog: https://www.xfilespro.com/how-does-xfilespro-make-document-sharing-secure-and-seamless-in-salesforce/
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Globus
The U.S. Geological Survey (USGS) has made substantial investments in meeting evolving scientific, technical, and policy driven demands on storing, managing, and delivering data. As these demands continue to grow in complexity and scale, the USGS must continue to explore innovative solutions to improve its management, curation, sharing, delivering, and preservation approaches for large-scale research data. Supporting these needs, the USGS has partnered with the University of Chicago-Globus to research and develop advanced repository components and workflows leveraging its current investment in Globus. The primary outcome of this partnership includes the development of a prototype enterprise repository, driven by USGS Data Release requirements, through exploration and implementation of the entire suite of the Globus platform offerings, including Globus Flow, Globus Auth, Globus Transfer, and Globus Search. This presentation will provide insights into this research partnership, introduce the unique requirements and challenges being addressed and provide relevant project progress.
Understanding Globus Data Transfers with NetSageGlobus
NetSage is an open privacy-aware network measurement, analysis, and visualization service designed to help end-users visualize and reason about large data transfers. NetSage traditionally has used a combination of passive measurements, including SNMP and flow data, as well as active measurements, mainly perfSONAR, to provide longitudinal network performance data visualization. It has been deployed by dozens of networks world wide, and is supported domestically by the Engagement and Performance Operations Center (EPOC), NSF #2328479. We have recently expanded the NetSage data sources to include logs for Globus data transfers, following the same privacy-preserving approach as for Flow data. Using the logs for the Texas Advanced Computing Center (TACC) as an example, this talk will walk through several different example use cases that NetSage can answer, including: Who is using Globus to share data with my institution, and what kind of performance are they able to achieve? How many transfers has Globus supported for us? Which sites are we sharing the most data with, and how is that changing over time? How is my site using Globus to move data internally, and what kind of performance do we see for those transfers? What percentage of data transfers at my institution used Globus, and how did the overall data transfer performance compare to the Globus users?
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar
The European Union Agency for Law Enforcement Cooperation (Europol) has suffered an alleged data breach after a notorious threat actor claimed to have exfiltrated data from its systems. Infamous data leaker IntelBroker posted on the even more infamous BreachForums hacking forum, saying that Europol suffered a data breach this month.
The alleged breach affected Europol agencies CCSE, EC3, Europol Platform for Experts, Law Enforcement Forum, and SIRIUS. Infiltration of these entities can disrupt ongoing investigations and compromise sensitive intelligence shared among international law enforcement agencies.
However, this is neither the first nor the last activity of IntekBroker. We have compiled for you what happened in the last few days. To track such hacker activities on dark web sources like hacker forums, private Telegram channels, and other hidden platforms where cyber threats often originate, you can check SOCRadar’s Dark Web News.
Stay Informed on Threat Actors’ Activity on the Dark Web with SOCRadar!
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planet’s largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
9. Wordpress ❤ Composer
Custom Installers
At times it may be necessary for a
package to require additional actions
during installation, such as installing
packages outside of the default
vendor library.
{
"name": "my-vendor/my-lib-plugin",
"type": "my-lib-plugin",
"require": {
"my-vendor/my-lib-installer": "*"
}
}
10. ComposerInstallerInstallerInterface
interface InstallerInterface
{
//Decides if the installer supports the given type
public function supports($packageType);
//Checks that provided package is installed.
public function isInstalled(InstalledRepositoryInterface $repo, PackageInterface $package);
//Installs specific package.
public function install(InstalledRepositoryInterface $repo, PackageInterface $package);
//Updates specific package.
public function update(InstalledRepositoryInterface $repo, PackageInterface $initial, PackageInterface $target);
//Uninstalls specific package.
public function uninstall(InstalledRepositoryInterface $repo, PackageInterface $package);
//Returns the installation path of a package
public function getInstallPath(PackageInterface $package);
}
11. A basic Installer Plugin
1. The package file: composer.json
2. The Plugin class, e.g.: MyProjectComposerPlugin.php, implements
ComposerPluginPluginInterface.
3. The Installer class, e.g.: MyProjectComposerInstaller.php, implements
ComposerInstallerInstallerInterface.
12. Wordpress Core itself is a dependency
2) johnpbloch/wordpress
A fork of WordPress with Composer support added. Synced every 15
minutes.
1) johnpbloch/wordpress-core-installer
A custom installer to handle deploying WordPress with composer.
13. Wordpress Core itself is a dependency
use ComposerInstallerLibraryInstaller;
use ComposerPackagePackageInterface;
class WordPressCoreInstaller extends LibraryInstaller {
const TYPE = 'wordpress-core';
public function getInstallPath( PackageInterface $package ) {
$extra = $package->getExtra();
if ( ! $installationDir && ! empty( $extra['wordpress-install-dir'] ) ) {
$installationDir = $extra['wordpress-install-dir'];
}
return $installationDir;
}
public function supports( $packageType ) {
return self::TYPE === $packageType;
}
}
14. Wordpress Core itself is a dependency
"require": {
"johnpbloch/wordpress": "4.3.1"
},
"extra": {
"wordpress-install-dir": "wp"
},
15. Manage Plugins with Composer
composer/installers
A Multi-Framework Composer Library Installer. It will magically install their package to the
correct location based on the specified package type.
● wordpress-plugin => wp-content/plugins/{$name}
● wordpress-theme => wp-content/themes/{$name}
● wordpress-muplugin => wp-content/mu-plugins/{$name}
17. Manage Plugins with Composer
Limited to plugins that already have a
composer.json.
What about 3th party plugins from
https://wordpress.org/plugins/ ?
Wordpress Packagist
Mirrors the WordPress Plugin and
Theme directories as a Composer
repository.
21. A CLI for Wordpress
composer require wp-cli/wp-cli
WP-CLI is a set of command-line tools for managing WordPress installations.
22. Run Commands with WP-CLI
wp <command> <sub-command> <params>
● core: Download, install, update, manage WordPress.
● db: Perform basic database operations.
● plugin: Manage, install, activate, deactivate plugins.
● post: Manage, generate, publish posts.
● scaffold: Generate code for post types, plugins, etc.
● and many more... http://wp-cli.org/commands/
23. Wordpress Automated Testing
Official test suite repository.
https://develop.svn.wordpress.org/trunk/
Time: 4.58 minutes, Memory: 97.75Mb
There was 1 failure:
FAILURES!
Tests: 4251, Assertions: 15938, Failures: 1, Skipped: 65.
https://make.wordpress.org/core/handbook/testing/automated-testing/
24. Test Your Plugins!
$ wp scaffold plugin test_plugin
├──bin/
│ └──install-wp-tests.sh
├──phpunit.xml
├──test_plugin.php
└──tests/
├──bootstrap.php
└──test-sample.php
└──.travis.yml
// This will install WP test suite
// under “/tmp/wordpress”
$ bash bin/install-wp-tests.sh wordpress_test root ''
25. Test Your Plugins!
class FooTest extends WP_UnitTestCase
{
function test_bar() {
// replace this your test
$this->assertTrue( true );
}
}
● Object Factories:
$this->factory->post->create();
● Custom Asserts:
$response = wp_remote_get( $url );
$this->assertWPError( $response );
$this->assertQueryTrue( 'is_tag', 'is_archive' );
● Useful Methods:
setUp() | tearDown() | go_to() |
remove_added_uploads() ecc..