CHANGELOG ========= 5.3 --- * Add prototype definition for nested options 5.1.0 ----- * added fluent configuration of options using `OptionResolver::define()` * added `setInfo()` and `getInfo()` methods * updated the signature of method `OptionsResolver::setDeprecated()` to `OptionsResolver::setDeprecation(string $option, string $package, string $version, $message)` * deprecated `OptionsResolverIntrospector::getDeprecationMessage()`, use `OptionsResolverIntrospector::getDeprecation()` instead 5.0.0 ----- * added argument `$triggerDeprecation` to `OptionsResolver::offsetGet()` 4.3.0 ----- * added `OptionsResolver::addNormalizer` method 4.2.0 ----- * added support for nested options definition * added `setDeprecated` and `isDeprecated` methods 3.4.0 ----- * added `OptionsResolverIntrospector` to inspect options definitions inside an `OptionsResolver` instance * added array of types support in allowed types (e.g int[]) 2.6.0 ----- * deprecated OptionsResolverInterface * [BC BREAK] removed "array" type hint from OptionsResolverInterface methods setRequired(), setAllowedValues(), addAllowedValues(), setAllowedTypes() and addAllowedTypes() * added OptionsResolver::setDefault() * added OptionsResolver::hasDefault() * added OptionsResolver::setNormalizer() * added OptionsResolver::isRequired() * added OptionsResolver::getRequiredOptions() * added OptionsResolver::isMissing() * added OptionsResolver::getMissingOptions() * added OptionsResolver::setDefined() * added OptionsResolver::isDefined() * added OptionsResolver::getDefinedOptions() * added OptionsResolver::remove() * added OptionsResolver::clear() * deprecated OptionsResolver::replaceDefaults() * deprecated OptionsResolver::setOptional() in favor of setDefined() * deprecated OptionsResolver::isKnown() in favor of isDefined() * [BC BREAK] OptionsResolver::isRequired() returns true now if a required option has a default value set * [BC BREAK] merged Options into OptionsResolver and turned Options into an interface * deprecated Options::overload() (now in OptionsResolver) * deprecated Options::set() (now in OptionsResolver) * deprecated Options::get() (now in OptionsResolver) * deprecated Options::has() (now in OptionsResolver) * deprecated Options::replace() (now in OptionsResolver) * [BC BREAK] Options::get() (now in OptionsResolver) can only be used within lazy option/normalizer closures now * [BC BREAK] removed Traversable interface from Options since using within lazy option/normalizer closures resulted in exceptions * [BC BREAK] removed Options::all() since using within lazy option/normalizer closures resulted in exceptions * [BC BREAK] OptionDefinitionException now extends LogicException instead of RuntimeException * [BC BREAK] normalizers are not executed anymore for unset options * normalizers are executed after validating the options now * [BC BREAK] an UndefinedOptionsException is now thrown instead of an InvalidOptionsException when non-existing options are passed Upper Kenai River Fly Fishing - Kenai River Fly Fishing

Upper Kenai River

Upper Kenai River

 

Upper Kenai River Half Day
The Upper Kenai River begins in Cooper Landing as it flows from Kenai Lake and winds its way approximately 12 miles to Jim’s Landing. Our Upper Kenai River half day fishing trip begins at the Kenai Lake bridge at the mouth of Kenai Lake and covers approximately 7 miles of river ending at Sportsman’s Lodge or the Kenai Russian River Ferry.

 

Upper Kenai River Full Day
Our Upper Kenai River full day fishing trip begins either at the Kenai Lake bridge at the mouth of Kenai Lake or at Sportsman’s Lodge/Russian River Ferry and covers between 5 to 12 miles of the Kenai River ending at Jim’s Landing. This trip takes you through the Kenai National Wildlife Refuge, an area known for its trophy sized Rainbow Trout and Dolly Varden, and of course its abundance of Red and Silver Salmon. This trip will provide you with an opportunity to not only drift fish, but also to work the banks, gravel bars and islands throughout this stretch. Hover Box Created with Sketch.