proto library Client - Class FileOptions (v5.36.2)

Reference documentation and code samples for the proto library Client class FileOptions.

Generated from protobuf message google.protobuf.FileOptions

Namespace

Google \ Protobuf \ Internal

Methods

__construct

Constructor.

Parameters
Name Description
data array

Optional. Data for populating the Message object.

↳ java_package string

Sets the Java package where classes generated from this .proto will be placed. By default, the proto package is used, but this is often inappropriate because proto packages do not normally start with backwards domain names.

↳ java_outer_classname string

Controls the name of the wrapper Java class generated for the .proto file. That class will always contain the .proto file's getDescriptor() method as well as any top-level extensions defined in the .proto file. If java_multiple_files is disabled, then all the other classes from the .proto file will be nested inside the single wrapper outer class.

↳ java_multiple_files bool

If enabled, then the Java code generator will generate a separate .java file for each top-level message, enum, and service defined in the .proto file. Thus, these types will not be nested inside the wrapper class named by java_outer_classname. However, the wrapper class will still be generated to contain the file's getDescriptor() method as well as any top-level extensions defined in the file.

↳ java_generate_equals_and_hash bool

This option does nothing.

↳ java_string_check_utf8 bool

A proto2 file can set this to true to opt in to UTF-8 checking for Java, which will throw an exception if invalid UTF-8 is parsed from the wire or assigned to a string field. TODO: clarify exactly what kinds of field types this option applies to, and update these docs accordingly. Proto3 files already perform these checks. Setting the option explicitly to false has no effect: it cannot be used to opt proto3 files out of UTF-8 checks.

↳ optimize_for int
↳ go_package string

Sets the Go package where structs generated from this .proto will be placed. If omitted, the Go package will be derived from the following: - The basename of the package import path, if provided. - Otherwise, the package statement in the .proto file, if present. - Otherwise, the basename of the .proto file, without extension.

↳ cc_generic_services bool

Should generic services be generated in each language? "Generic" services are not specific to any particular RPC system. They are generated by the main code generators in each language (without additional plugins). Generic services were the only kind of service generation supported by early versions of google.protobuf. Generic services are now considered deprecated in favor of using plugins that generate code specific to your particular RPC system. Therefore, these default to false. Old code which depends on generic services should explicitly set them to true.

↳ java_generic_services bool
↳ py_generic_services bool
↳ deprecated bool

Is this file deprecated? Depending on the target platform, this can emit Deprecated annotations for everything in the file, or it will be completely ignored; in the very least, this is a formalization for deprecating files.

↳ cc_enable_arenas bool

Enables the use of arenas for the proto messages in this file. This applies only to generated classes for C++.

↳ objc_class_prefix string

Sets the objective c class prefix which is prepended to all objective c generated classes from this .proto. There is no default.

↳ csharp_namespace string

Namespace for generated classes; defaults to the package.

↳ swift_prefix string

By default Swift generators will take the proto package and CamelCase it replacing '.' with underscore and use that to prefix the types/symbols defined. When this options is provided, they will use this value instead to prefix the types/symbols defined.

↳ php_class_prefix string

Sets the php class prefix which is prepended to all php generated classes from this .proto. Default is empty.

↳ php_namespace string

Use this option to change the namespace of php generated classes. Default is empty. When this option is empty, the package name will be used for determining the namespace.

↳ php_metadata_namespace string

Use this option to change the namespace of php generated metadata classes. Default is empty. When this option is empty, the proto file name will be used for determining the namespace.

↳ ruby_package string

Use this option to change the package of ruby generated classes. Default is empty. When this option is not set, the package name will be used for determining the ruby package.

↳ features FeatureSet

Any features defined in the specific edition. WARNING: This field should only be used by protobuf plugins or special cases like the proto compiler. Other uses are discouraged and developers should rely on the protoreflect APIs for their client language.

↳ uninterpreted_option array<UninterpretedOption>

The parser stores options it doesn't recognize here. See the documentation for the "Options" section above.

getJavaPackage

Sets the Java package where classes generated from this .proto will be placed. By default, the proto package is used, but this is often inappropriate because proto packages do not normally start with backwards domain names.

Returns
Type Description
string

hasJavaPackage

clearJavaPackage

setJavaPackage

Sets the Java package where classes generated from this .proto will be placed. By default, the proto package is used, but this is often inappropriate because proto packages do not normally start with backwards domain names.

Parameter
Name Description
var string
Returns
Type Description
$this

getJavaOuterClassname

Controls the name of the wrapper Java class generated for the .proto file.

That class will always contain the .proto file's getDescriptor() method as well as any top-level extensions defined in the .proto file. If java_multiple_files is disabled, then all the other classes from the .proto file will be nested inside the single wrapper outer class.

Returns
Type Description
string

hasJavaOuterClassname

clearJavaOuterClassname

setJavaOuterClassname

Controls the name of the wrapper Java class generated for the .proto file.

That class will always contain the .proto file's getDescriptor() method as well as any top-level extensions defined in the .proto file. If java_multiple_files is disabled, then all the other classes from the .proto file will be nested inside the single wrapper outer class.

Parameter
Name Description
var string
Returns
Type Description
$this

getJavaMultipleFiles

If enabled, then the Java code generator will generate a separate .java file for each top-level message, enum, and service defined in the .proto file. Thus, these types will not be nested inside the wrapper class named by java_outer_classname. However, the wrapper class will still be generated to contain the file's getDescriptor() method as well as any top-level extensions defined in the file.

Returns
Type Description
bool

hasJavaMultipleFiles

clearJavaMultipleFiles

setJavaMultipleFiles

If enabled, then the Java code generator will generate a separate .java file for each top-level message, enum, and service defined in the .proto file. Thus, these types will not be nested inside the wrapper class named by java_outer_classname. However, the wrapper class will still be generated to contain the file's getDescriptor() method as well as any top-level extensions defined in the file.

Parameter
Name Description
var bool
Returns
Type Description
$this

getJavaGenerateEqualsAndHash

This option does nothing.

Returns
Type Description
bool

hasJavaGenerateEqualsAndHash

clearJavaGenerateEqualsAndHash

setJavaGenerateEqualsAndHash

This option does nothing.

Parameter
Name Description
var bool
Returns
Type Description
$this

getJavaStringCheckUtf8

A proto2 file can set this to true to opt in to UTF-8 checking for Java, which will throw an exception if invalid UTF-8 is parsed from the wire or assigned to a string field.

TODO: clarify exactly what kinds of field types this option applies to, and update these docs accordingly. Proto3 files already perform these checks. Setting the option explicitly to false has no effect: it cannot be used to opt proto3 files out of UTF-8 checks.

Returns
Type Description
bool

hasJavaStringCheckUtf8

clearJavaStringCheckUtf8

setJavaStringCheckUtf8

A proto2 file can set this to true to opt in to UTF-8 checking for Java, which will throw an exception if invalid UTF-8 is parsed from the wire or assigned to a string field.

TODO: clarify exactly what kinds of field types this option applies to, and update these docs accordingly. Proto3 files already perform these checks. Setting the option explicitly to false has no effect: it cannot be used to opt proto3 files out of UTF-8 checks.

Parameter
Name Description
var bool
Returns
Type Description
$this

getOptimizeFor

Generated from protobuf field optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED];

Returns
Type Description
int one of the values in {@see \Google\Protobuf\Internal\FileOptions\OptimizeMode}

hasOptimizeFor

clearOptimizeFor

setOptimizeFor

Generated from protobuf field optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED];

Parameter
Name Description
var int

one of the values in FileOptions\OptimizeMode

Returns
Type Description
$this

getGoPackage

Sets the Go package where structs generated from this .proto will be placed. If omitted, the Go package will be derived from the following:

  • The basename of the package import path, if provided.
  • Otherwise, the package statement in the .proto file, if present.
    • Otherwise, the basename of the .proto file, without extension.
Returns
Type Description
string

hasGoPackage

clearGoPackage

setGoPackage

Sets the Go package where structs generated from this .proto will be placed. If omitted, the Go package will be derived from the following:

  • The basename of the package import path, if provided.
  • Otherwise, the package statement in the .proto file, if present.
    • Otherwise, the basename of the .proto file, without extension.
Parameter
Name Description
var string
Returns
Type Description
$this

getCcGenericServices

Should generic services be generated in each language? "Generic" services are not specific to any particular RPC system. They are generated by the main code generators in each language (without additional plugins).

Generic services were the only kind of service generation supported by early versions of google.protobuf. Generic services are now considered deprecated in favor of using plugins that generate code specific to your particular RPC system. Therefore, these default to false. Old code which depends on generic services should explicitly set them to true.

Returns
Type Description
bool

hasCcGenericServices

clearCcGenericServices

setCcGenericServices

Should generic services be generated in each language? "Generic" services are not specific to any particular RPC system. They are generated by the main code generators in each language (without additional plugins).

Generic services were the only kind of service generation supported by early versions of google.protobuf. Generic services are now considered deprecated in favor of using plugins that generate code specific to your particular RPC system. Therefore, these default to false. Old code which depends on generic services should explicitly set them to true.

Parameter
Name Description
var bool
Returns
Type Description
$this

getJavaGenericServices

Generated from protobuf field optional bool java_generic_services = 17 [default = false];

Returns
Type Description
bool

hasJavaGenericServices

clearJavaGenericServices

setJavaGenericServices

Generated from protobuf field optional bool java_generic_services = 17 [default = false];

Parameter
Name Description
var bool
Returns
Type Description
$this

getPyGenericServices

Generated from protobuf field optional bool py_generic_services = 18 [default = false];

Returns
Type Description
bool

hasPyGenericServices

clearPyGenericServices

setPyGenericServices

Generated from protobuf field optional bool py_generic_services = 18 [default = false];

Parameter
Name Description
var bool
Returns
Type Description
$this

getDeprecated

Is this file deprecated? Depending on the target platform, this can emit Deprecated annotations for everything in the file, or it will be completely ignored; in the very least, this is a formalization for deprecating files.

Returns
Type Description
bool

hasDeprecated

clearDeprecated

setDeprecated

Is this file deprecated? Depending on the target platform, this can emit Deprecated annotations for everything in the file, or it will be completely ignored; in the very least, this is a formalization for deprecating files.

Parameter
Name Description
var bool
Returns
Type Description
$this

getCcEnableArenas

Enables the use of arenas for the proto messages in this file. This applies only to generated classes for C++.

Returns
Type Description
bool

hasCcEnableArenas

clearCcEnableArenas

setCcEnableArenas

Enables the use of arenas for the proto messages in this file. This applies only to generated classes for C++.

Parameter
Name Description
var bool
Returns
Type Description
$this

getObjcClassPrefix

Sets the objective c class prefix which is prepended to all objective c generated classes from this .proto. There is no default.

Returns
Type Description
string

hasObjcClassPrefix

clearObjcClassPrefix

setObjcClassPrefix

Sets the objective c class prefix which is prepended to all objective c generated classes from this .proto. There is no default.

Parameter
Name Description
var string
Returns
Type Description
$this

getCsharpNamespace

Namespace for generated classes; defaults to the package.

Returns
Type Description
string

hasCsharpNamespace

clearCsharpNamespace

setCsharpNamespace

Namespace for generated classes; defaults to the package.

Parameter
Name Description
var string
Returns
Type Description
$this

getSwiftPrefix

By default Swift generators will take the proto package and CamelCase it replacing '.' with underscore and use that to prefix the types/symbols defined. When this options is provided, they will use this value instead to prefix the types/symbols defined.

Returns
Type Description
string

hasSwiftPrefix

clearSwiftPrefix

setSwiftPrefix

By default Swift generators will take the proto package and CamelCase it replacing '.' with underscore and use that to prefix the types/symbols defined. When this options is provided, they will use this value instead to prefix the types/symbols defined.

Parameter
Name Description
var string
Returns
Type Description
$this

getPhpClassPrefix

Sets the php class prefix which is prepended to all php generated classes from this .proto. Default is empty.

Returns
Type Description
string

hasPhpClassPrefix

clearPhpClassPrefix

setPhpClassPrefix

Sets the php class prefix which is prepended to all php generated classes from this .proto. Default is empty.

Parameter
Name Description
var string
Returns
Type Description
$this

getPhpNamespace

Use this option to change the namespace of php generated classes. Default is empty. When this option is empty, the package name will be used for determining the namespace.

Returns
Type Description
string

hasPhpNamespace

clearPhpNamespace

setPhpNamespace

Use this option to change the namespace of php generated classes. Default is empty. When this option is empty, the package name will be used for determining the namespace.

Parameter
Name Description
var string
Returns
Type Description
$this

getPhpMetadataNamespace

Use this option to change the namespace of php generated metadata classes.

Default is empty. When this option is empty, the proto file name will be used for determining the namespace.

Returns
Type Description
string

hasPhpMetadataNamespace

clearPhpMetadataNamespace

setPhpMetadataNamespace

Use this option to change the namespace of php generated metadata classes.

Default is empty. When this option is empty, the proto file name will be used for determining the namespace.

Parameter
Name Description
var string
Returns
Type Description
$this

getRubyPackage

Use this option to change the package of ruby generated classes. Default is empty. When this option is not set, the package name will be used for determining the ruby package.

Returns
Type Description
string

hasRubyPackage

clearRubyPackage

setRubyPackage

Use this option to change the package of ruby generated classes. Default is empty. When this option is not set, the package name will be used for determining the ruby package.

Parameter
Name Description
var string
Returns
Type Description
$this

getFeatures

Any features defined in the specific edition.

WARNING: This field should only be used by protobuf plugins or special cases like the proto compiler. Other uses are discouraged and developers should rely on the protoreflect APIs for their client language.

Returns
Type Description
FeatureSet|null

hasFeatures

clearFeatures

setFeatures

Any features defined in the specific edition.

WARNING: This field should only be used by protobuf plugins or special cases like the proto compiler. Other uses are discouraged and developers should rely on the protoreflect APIs for their client language.

Parameter
Name Description
var FeatureSet
Returns
Type Description
$this

getUninterpretedOption

The parser stores options it doesn't recognize here.

See the documentation for the "Options" section above.

Returns
Type Description
Google\Protobuf\RepeatedField<UninterpretedOption>

setUninterpretedOption

The parser stores options it doesn't recognize here.

See the documentation for the "Options" section above.

Parameter
Name Description
var array<UninterpretedOption>
Returns
Type Description
$this