dolibarr/dev
Frédéric FRANCE 840538d702
FIX: Resolve possibly-undefined-variable cases flagged by PHPStan (#39523)
* FIX: Resolve possibly-undefined-variable cases flagged by PHPStan

Fixes several cases of the variable.undefined PHPStan rule instead of
just excluding them via the baseline: a wrong variable used to build a
delete link (dir_add_card.php), an uninitialized $result across a
try/catch (CMailFile), missing GETPOST reads ($mode, $fk_project/$date
reset via unset() creating cross-branch ambiguity), a missing $r
contract check (commonfieldsinimport.inc.php), missing @var/global
annotations for $conf/$langs/$bc, dead extrafields-display code
guarded by the wrong condition (expedition/card.php), and an
undefined $soc passed to formAddObjectLine() where objects have no
buyer thirdparty (replaced with null). Corresponding entries removed
from dev/build/phpstan/phpstan-baseline.neon.

* FIX: Resolve more possibly-undefined-variable cases flagged by PHPStan

Second batch of variable.undefined fixes removed from the baseline:
- Complex conditional flows PHPStan can't prove exhaustive (Stripe key
  selection in commoninvoice.class.php, a situation-invoice loop var in
  pdf_sponge.modules.php, a product loop var in stock/movement_list.php)
  fixed by adding a definite initialization before the ambiguous branch.
- A commented-out $linkback assignment restored in
  expensereport/payment/info.php.
- Missing GETPOST reads added (holiday/list.php update-date filters,
  product/stock/info.php $action/$socid, projet/comment.php $mode).
- A dead-code $mesg call to dol_htmloutput_mesg() removed from
  admin_hrm.php (messages are already shown via setEventMessages()).
- Redundant isset() checks removed in product/reassort.php and
  reassortlot.php where $type is unconditionally set earlier in the
  same file, so the isset()-false branch was unreachable dead code.
- $user documented as always available in public/bookcal/index.php
  (NOREQUIREUSER is not defined on that page).
- A genuinely missing $tmpcode initialization fixed in
  attendee_new.php, suggestbooth.php and suggestconference.php: when
  an existing thirdparty is reused (or SOCIETE_CODECLIENT_ADDON has no
  auto-numbering), $tmpcode was never set before being assigned to
  code_client/code_fournisseur.

* add phan fix

* add phan fix

* fix

* fix

* fix
2026-08-15 18:33:12 +02:00
..
build FIX: Resolve possibly-undefined-variable cases flagged by PHPStan (#39523) 2026-08-15 18:33:12 +02:00
examples fix: dev/examples/zapier/package.json to reduce vulnerabilities (#37071) 2026-02-04 14:48:57 +01:00
initdata exit code must be >= 0 (#35311) 2025-09-12 02:29:23 +02:00
initdemo Clean dump file 2026-06-04 23:28:05 +02:00
resources Doc 2026-05-28 19:48:52 +02:00
setup Qual: Update LanguageOfCommentsSniff to avoid PHP7 incompatibility (#39032) 2026-07-01 16:44:17 +02:00
skeletons Clean files 2026-01-07 19:01:54 +01:00
tools Qual: Suppress PhanUndeclaredProperty warnings in commonobject.class.php (#39529) 2026-08-15 02:42:16 +02:00
translation Fix showunused option in sanity_check_trans_missing_unused.sh 2026-06-27 16:51:54 +02:00
.gitignore Add Rector (automatic refactoring) 2023-10-08 20:25:46 +02:00
dolibarr_changes.txt Automated merge from 23.0 to develop 2026-07-15 02:06:09 +02:00
lockedfiles.txt Test check on checksum 2026-06-04 22:57:30 +02:00
pullmerge.sh Merge branch '24.0' of git@github.com:Dolibarr/dolibarr.git into 24.0 2026-08-13 17:41:57 +02:00
README

README (English)
--------------------------------

This directory contains sub-directories to provide tools or documentation for developers.

Note: All files in this directory are in the source repository only and are not provided with a standard release. They are useless to make Dolibarr working.

You may find a more complete documentation on Dolibarr on the wiki:

https://wiki.dolibarr.org/

and on

https://doxygen.dolibarr.org/