Difference between revisions of "Drupal"
From Wasya Wiki
(→Setting up dev environment) |
(→Testing) |
||
Line 219: | Line 219: | ||
export PATH="$PATH:/var/www/html/vendor/bin" | export PATH="$PATH:/var/www/html/vendor/bin" | ||
+ | |||
+ | You need to change minimum stability to "dev" for the testing libraries to be loaded. | ||
DO NOT RUN THIS IN PRODUCTION! | DO NOT RUN THIS IN PRODUCTION! |
Revision as of 00:31, 30 September 2025
- A great book: https://drupalatyourfingertips.com
- How to clear cache: /devel/cache/clear
Contents
Install & Configure
composer create-project drupal/recommended-project:9.5.10 html
composer require 'drupal/devel:^5.1' composer require 'drupal/s3fs:^3.3' # composer require 'wasya-co/consent_popup: 1.0.4.x-dev' composer require 'drupal/consent_popup:^1.0' composer require 'drush/drush:^11.6' composer require 'drupal/metatag:^2.0' composer require 'drupal/redirect:^1.9' composer require 'drupal/superfish:^1.6' composer require 'drupal/webform:^6.0' composer require 'drupal/captcha:^1.14' composer require 'drupal/typed_data:^1.0@alpha' composer require 'drupal/rules:^3.0@alpha' composer require 'drupal/smtp:^1.2' composer require 'drupal/hal:^1.0' composer require 'drupal/restui:^1.21' composer require 'drupal/keycloak:^2.2@beta' composer require 'drupal/nodeaccess:^2.0@alpha' composer require 'drupal/backup_migrate:^5.0' composer require 'drupal/email_registration:^2.0@RC' composer require 'drupal/content_access:^2.0' composer require 'drupal/social_media:^2.0' composer require 'drupal/wordpress_migrate:^3.0@alpha' composer require 'drupal/migrate_tools:^6.0' composer require 'drupal/codefilter:^2.0' composer require 'drupal/views_taxonomy_term_name_depth:^7.2' composer require 'drupal/pathauto:^1.12' composer require 'drupal/metatag:^2.0' composer require 'drupal/twig_tweak:^3.3' composer require 'drupal/simplenews:^4.0' # composer require 'drupal/migrate_plus:^6.0' ## didn't need it the second time composer require 'drupal/ctools:^4.0' composer require 'drupal/commerce:^2.40' composer require drupal/inline_entity_form @RC --no-update apt install php-bcmath php8.1-bcmath composer require 'drupal/commerce_stripe:^1.1' composer require 'drupal/linkit:^6.0' composer require 'drupal/redirect_after_login:^3.0' composer require 'drupal/symfony_mailer:^1.4' composer require 'drupal/custom_search:^1.0@beta' composer require 'drupal/fullcalendar_view:^5.2' composer require 'drupal/date_recur:^3.3@RC' composer require 'drupal/date_recur_modular:^3.1' composer require 'drupal/colorbox:2.0.2' composer require 'drupal/tagclouds:^2.0' composer require 'drupal/filelog:^3.0' composer require 'drupal/message:^1.6' composer require 'drupal/flag:^4.0@beta' composer require 'drupal/message_subscribe:^1.4' composer require 'drupal/message_digest:^1.5' composer require 'drupal/message_ui:^1.3' composer require 'drupal/layout_builder_usage_reports:^1.0' composer require 'drupal/views_tree:^2.0@RC' composer require 'drupal/vote_up_down:^1.0@alpha' composer require 'drupal/formblock:^2.0@beta' composer require 'drupal/views_pdf:^3.0@alpha' composer require 'drupal/field_permissions:^1.4' composer require 'drupal/scheduler:^2.2' composer require 'drupal/simplenews_scheduler:^4.0@alpha' composer require 'drupal/insert_view:^2.1' composer require drush/drush composer require 'drupal/keycloak:^1.8' composer require 'drupal/simple_oauth:^5.2' composer require 'drupal/group:^1.6' composer require 'drupal/group_join_link:^1.0' composer require 'drupal/social_auth:^4.1' composer require 'drupal/social_auth_google:^4.0' composer require 'drupal/commerce_recurring:^1.0@RC'
evaluating
composer require 'drupal/seo_checklist:^5.2' composer require 'drupal/yoast_seo:^1.9' composer require 'drupal/tvi:^2.0' ## From: https://www.drupal.org/project/tvi composer require 'drupal/advanced_text_formatter:^3.0@RC' composer require 'drupal/token_filter:^2.1' composer require 'drupal/form_mode_control:^2.4' composer require 'drupal/queue_mail:^1.7' composer require 'drupal/googlelogin-googlelogin:^9.5'
not using
# composer require 'drupal/oauth_login_oauth2:^3.0'## not free! very limited.
Setting up dev environment
- From: https://github.com/composer/composer/issues/9393
- From: https://www.drupal.org/docs/develop/automated-testing
- probably not useful: https://www.drupal.org/docs/develop/automated-testing/phpunit-in-drupal/creating-functional-tests-simulated-browser
composer require --dev --no-update symfony/filesystem:4.4.42 composer require --dev drupal/core-dev:9.5.11 --with-all-dependencies composer require --dev behat/mink jcalderonzumba/mink-phantomjs-driver composer update -W composer update symfony/filesystem:4.4.42 drush/drush -W composer require --dev drupal/core-dev -W composer require --dev phpspec/prophecy-phpunit:^2
Not useful:
composer require 'drupal/examples:^4.0'
Configure Apache
<Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory>
Configure s3fs
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement0", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:ListBucketVersions" ], "Resource": [ "arn:aws:s3:::<ze bucket>" ] }, { "Sid": "Statement1", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObjectVersion", "s3:DeleteObject", "s3:GetObjectVersion", "s3:GetObjectAcl", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::<ze bucket>/*" ] } ] }
Disable caching
From: https://www.drupal.org/docs/develop/development-tools/disable-caching
- Add the settings.local.php and
- Modify development.services.yml:
parameters: http.response.debug_cacheability_headers: true twig.config: debug: true auto_reload: true cache: false services: cache.backend.null: class: Drupal\Core\Cache\NullBackendFactory
ReST
curl --include \ --request POST \ --user admin:<> \ --header 'Content-type: application/hal+json' \ http://pi.local/node?_format=hal_json \ --data-binary '{ "_links": { "type":{"href":"http://pi.local/rest/type/node/article"} }, "title":[{"value":"Node +++ 123 bac +++" }], "body":[{"value": "<b>hello, wor</b>ld!", "format": "full_html" }], "type":[{"target_id":"article"}], "status": [{"value": 1}], "_embedded": { "http://pi.local/rest/relation/node/article/field_issue": [ { "uuid": [{ "value": "56229a95-d675-43e1-99b1-f9e11b5579c5" }] } ], "http://pi.local/rest/relation/node/article/field_tags": [ { "uuid": [{ "value": "45646a7d-1a16-42e8-b758-f6e1c8d976f7" }] }, { "uuid": [{ "value": "834e34e2-05ae-498d-b876-453798872ce1" }] } ] } }'
Default Attachments
txt pdf doc docx html csv xlsx xlsm sh json svg cer pem pub key kdbx png jpg jpeg gif mkv sfv avi mp3 mp4 webm mov zip tar gz
Testing
From: https://www.drupal.org/docs/develop/automated-testing/phpunit-in-drupal/running-phpunit-tests
export PATH="$PATH:/var/www/html/vendor/bin"
You need to change minimum stability to "dev" for the testing libraries to be loaded.
DO NOT RUN THIS IN PRODUCTION!
composer require --dev phpunit/phpunit composer require --dev phpunit/phpunit:^9.5 --with-all-dependencies composer require --dev drupal/core-dev composer require --dev behat/mink:1.8.0 --with-all-dependencies composer require --dev symfony/phpunit-bridge composer require --dev phpspec/prophecy-phpunit composer require --dev behat/mink-browserkit-driver composer require --dev drupal/core-dev composer require --dev drupal/core-dev --update-with-all-dependencies
phpunit --testsuite unit --filter CurrentUserBlock ../vendor/bin/phpunit -c ../phpunit.xml modules/ish_drupal_module/tests/src/Functional/CurrentUserBlockTest.php ../vendor/bin/phpunit -c ../phpunit.xml modules/ish_drupal_module/tests/src/Functional/CurrentUserBlockTest.php -v --debug